私はUISearchController
を持つテーブルビューコントローラを持っていて、をtableView.tableHeaderView
と設定しています。検索結果を更新するときには、beginUpdates
およびendUpdates
と関連する方法を使用して、テーブルビューのデータを更新します。beginUpdates/endUpdatesを使用すると、tableHeaderViewからUISearchBarが消える
これにより、検索バーが表示されなくなります。 tableHeaderView
は検索バーと同じサイズの空白の汎用UIView
に設定されています。 beginUpdates
/endUpdates
の手順の代わりにreloadData
を使用するだけであれば、すべて問題ありません。
テーブルビューコントローラは、通常のビューコントローラに組み込まれています。ナビゲーションコントローラは含まれていません。これは、問題を再現するために必要なテーブルビューコントローラの全体の実装です:
- (void)viewDidLoad
{
[super viewDidLoad];
self.searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
self.searchController.searchResultsUpdater = self;
self.searchController.dimsBackgroundDuringPresentation = NO;
self.tableView.tableHeaderView = self.searchController.searchBar;
}
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
{
[self.tableView beginUpdates];
[self.tableView endUpdates];
}
は、なぜこれが検索バーが空白のビューに置き換えられる原因んし、どのようにそれを回避することができますか?
あなたのviewController /ナビゲーションコントローラの "半透明"プロパティを変更しようとしましたか?私はこの問題を一度覚えていたことを覚えています。そして、私が正しく「半透明」を思い出すと、それはそれと関係がありました。 – MCMatan