我正在使用UISearchController而不是UISearchDisplayController,并且我想立即在SearchBar上显示SearchResultController。现在,它显示如下(当我点击搜索栏时):
最佳答案
当结果为空时,UISearchController
的viewController
仍然隐藏。这就是为什么我们不得不摆弄UISearchControllerDelegate
的willPresentSearchController:
的原因
初始化self.searchController
后,使您的ViewController符合`UISearchControllerDelegate:
self.searchController.delegate = self;
在ViewController中实现
willPresentSearchController:
:- (void)willPresentSearchController:(UISearchController *)searchController
{
dispatch_async(dispatch_get_main_queue(), ^{
searchController.searchResultsController.view.hidden = NO;
});
}
异步调度是必需的,因为否则它将被内部行为覆盖。您可以在这里花哨并使用动画使表格 View 淡入。
此外,为保持理智而实现
didPresentSearchController:
:- (void)didPresentSearchController:(UISearchController *)searchController
{
searchController.searchResultsController.view.hidden = NO;
}
关于ios - 在SearchBar Tap上显示UISearchController的SearchResultsController,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29196752/