我有一個表視圖控制器UISearchController
設置UISearchBar
爲tableView.tableHeaderView
。更新搜索結果時,我使用beginUpdates
和endUpdates
及相關方法更新表視圖的數據。當使用beginUpdates/endUpdates時,UISearchBar從tableHeaderView消失
這使搜索欄消失; tableHeaderView
被設置爲與搜索欄大小相同的空的通用UIView
。如果我只是使用reloadData
而不是整個beginUpdates
/endUpdates
程序,一切都很好。
表視圖控制器嵌入在常規的視圖控制器;沒有涉及導航控制器。這是必要的表視圖控制器的整個執行重現該問題:
- (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/Navigation控制器上的「半透明」屬性?我記得我曾經有過這個問題,如果我記得正確的「半透明」,它與它有關。 – MCMatan