UITableView 初期位置設定 in UINavigationController (iOS7)

2014年7月5日土曜日 | Published in | 0 コメント

このエントリーをはてなブックマークに追加

極私的メモ。UINavigationControllerで遷移してきた画面でUITableViewを表示する時、任意の位置のセルで初期表示したい。
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
    [self.tableView reloadData];
    [self _scrollAnimated:NO];          // 任意のセルへスクロール
}
viewWillAppearに書いてもだめ(iOS7)。viewDidAppearだと画面がちらつく。

viewDidLayoutSubviewsに書いたらうまくいった。ただしフラグを使って初回だけに限定してやる。
@property (nonatomic, assign) BOOL didLayoutSubviews;

- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
    if (!self.didLayoutSubviews) {
        [self _scrollAnimated:NO];
        self.didLayoutSubviews = YES;
    }
}



Responses

Leave a Response

人気の投稿(過去 30日間)