【发布时间】:2015-02-23 14:24:38
【问题描述】:
我在 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
搜索正常,tableview 得到正确更新,等等。
但是!
如果我在搜索控制器处于活动状态时切换选项卡(只需点击搜索栏或使用一些文本)到另一个选项卡,然后返回搜索选项卡,我会得到一个只有搜索栏的空白屏幕,像这样
在这种情况下,我搜索以lar 开头的内容,它确实返回了结果并正确显示了它们。但是,如果我切换选项卡并返回到搜索选项卡,我会得到一个像这样的空白屏幕。控制器返回其原始状态的唯一方法是我执行_searchController.active = NO。但是,如果用户想要保持该搜索处于活动状态,我不能只是停用它。
我确定我遗漏了一些东西,但由于在 UISeachController 中没有什么可做的,我无法弄清楚是什么原因造成的......
【问题讨论】:
-
您能否提供示例目标 c 代码,我遇到了同样的问题?我对IOS开发非常陌生。我有单独的视图控制器用于搜索以及主列表。这是导致问题的原因吗?
标签: ios ios8 uisearchbar uisearchcontroller