当搜索栏文本为空时,UISearchController searchResultsController消失

时间:2015-06-10 16:33:16

标签: ios objective-c uisearchbar uisearchcontroller

我有一个UISearchController,当点击搜索栏时,它会显示它的searchResultsController(它是另一个视图控制器)。我使用这个UISearchController委托方法执行此操作:

-(void)presentSearchController:(UISearchController *)searchController {

    dispatch_async(dispatch_get_main_queue(), ^{
        searchController.searchResultsController.view.hidden = NO;
    });
}

但是,只要搜索栏的文本为空,无论是手动删除所有文本还是点击小x按钮,searchResultsController视图都会消失,直到我再次开始输入文本为止。任何想法为什么会这样?当searchbar.text为空时,是否有其他方法或委托方法被触发?

1 个答案:

答案 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];
    }
}