次のコードを使用して検索バーを非表示にします。
- (void)updateContentOffset
{
self.tableView.contentOffset = CGPointMake(0, 44);
}
- (void)viewWillAppear:(BOOL)animated
{
NSLog(@"%s",__PRETTY_FUNCTION__);
[super viewWillAppear:animated];
[self searchBarShouldEndEditing:self.searchDisplayController.searchBar];
[self performSelector:@selector(updateContentOffset) withObject:nil afterDelay:0.0];
self.fetchedResultsController.delegate = self;
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.fetchedResultsController performFetch:nil];
[self.tableView reloadData];
[self.tableView scrollRectToVisible:CGRectMake(0, 44, 1, 1) animated:YES];
}
ビューが初めて表示されるとき、コードは完全に機能します。
次回(別のコントローラーから戻って)表示されると、本来よりも少し下にスライドし、なぜそれが起こるのかわかりません。