6

这非常令人沮丧:即使搜索字符串为空,我也试图在 UISearchDisplayController 中显示未过滤的结果。

添加调试代码numberOfSectionsInTableView:numberOfRowsInSection:显示当我的搜索字符串为空时,将返回非零整数,但从cellForRowAtIndexPath:不调用!表格视图似乎被隐藏了。

我尝试设置无济于事tableview.hidden=NO;searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView

这并不难实现,我想这是一件很常见的事情!

4

3 回答 3

4

我知道这是一篇旧帖子,但我在使用新的 iOS8 UISearchController 时遇到了同样的问题。解决方法是检查字符串是否为空并设置结果tableview的属性HIDDEN = NO

于 2014-10-15T17:43:16.727 回答
2

您可以做的是当用户单击搜索并且字符串为空时,将 searchBartext 更改为“\n”回车

self.searchDisplayController.searchBar.text = @"\n";

回车不会显示在搜索栏中,也不会是相同的字符串,就像用户键入“\n”一样。所以它工作正常。在里面

-(BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString 

方法您可以将搜索栏文本设置回@""。如果搜索字符串是 @"\n"

self.searchDisplayController.searchBar.text = @"";

这对我有用!

于 2014-01-25T00:29:32.533 回答
2

这个问题的解决方案是不使用 UISearchDisplayController。它根本不提供执行此类操作所需的灵活性。使用 UISegmentedControl、UISearchBar 和 UITableView 构建您自己的自定义搜索界面,以获得最大的灵活性。

于 2012-08-23T23:25:28.237 回答