我有一个UISearchController,当点击搜索栏时,它会显示它的searchResultsController(它是另一个视图控制器)。我使用这个UISearchController委托方法执行此操作:
-(void)presentSearchController:(UISearchController *)searchController {
dispatch_async(dispatch_get_main_queue(), ^{
searchController.searchResultsController.view.hidden = NO;
});
}
但是,只要搜索栏的文本为空,无论是手动删除所有文本还是点击小x按钮,searchResultsController视图都会消失,直到我再次开始输入文本为止。任何想法为什么会这样?当searchbar.text为空时,是否有其他方法或委托方法被触发?
答案 0 :(得分:2)
所以在昨天摆弄了一段时间之后,这是我发现最终工作的解决方案。想我发布它以防其他人有同样的问题!
-(void)presentSearchController:(UISearchController *)searchController {
//forces searchResultsController to appear when searchBar tapped
dispatch_async(dispatch_get_main_queue(), ^{
searchController.searchResultsController.view.hidden = NO;
});
}
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText {
//Prevents searchController from disappearing
if ([searchText isEqualToString:@""])
{
[self presentSearchController:self.searchController];
}
}