我正在使用UISearchController而不是UISearchDisplayController,并且我想立即在SearchBar上显示SearchResultController。现在,它显示如下(当我点击搜索栏时):

最佳答案

当结果为空时,UISearchControllerviewController仍然隐藏。这就是为什么我们不得不摆弄UISearchControllerDelegatewillPresentSearchController:的原因

初始化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/

10-13 04:29