我正在iOS 8中使用UISearchController,使用以下初始化方式在嵌入在标签控制器中的视图控制器的viewDidLoad方法中:
_searchController = [[UISearchController alloc] initWithSearchResultsController:nil];
_searchBar = _searchController.searchBar;
[_searchController.searchBar sizeToFit];
_searchController.searchBar.delegate = self;
_searchController.searchResultsUpdater = self;
_searchController.dimsBackgroundDuringPresentation = NO;
_searchController.hidesNavigationBarDuringPresentation = NO;
self.definesPresentationContext = NO;
_shopsTable.tableHeaderView = _searchController.searchBar;
我已经实现了:
- (void)updateSearchResultsForSearchController:(UISearchController *)searchController
和(void)filterContentForSearchText:(NSString *)searchText
搜索功能可以正常工作,表格视图也能够正确更新。
但是!
如果当搜索控制器处于活动状态(即在搜索栏中输入一些文本),我切换到另一个选项卡,然后再返回至搜索选项卡时,会出现一个只有搜索栏的空白屏幕,如下所示:
在这种情况下,我搜索以lar
开头的内容,它确实返回了结果并正确显示了它们。但是如果我切换选项卡并返回至搜索选项卡,则会出现这样的空白屏幕。唯一的解决方法是设置_searchController.active = NO
,但如果用户想要保持该搜索活动状态,我不能仅仅将其停用。
我确信我漏掉了什么,但由于UISeachController上没有太多可做的事情,我无法弄清楚是什么引起了这个问题...