搜索字符串为空时显示UISearchDisplayTableView

时间:2012-08-03 21:35:51

标签: ios uitableview uisearchdisplaycontroller

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

numberOfSectionsInTableView:numberOfRowsInSection:添加调试代码表明,当我的搜索字符串为空时,返回非零整数,但永远不会调用cellForRowAtIndexPath:! tableview似乎是隐藏的。

我尝试在tableview.hidden=NO;中设置searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView无效。

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

3 个答案:

答案 0 :(得分:4)

我知道这是一个旧帖子,但我对新的iOS8 UISearchController有同样的问题。解决方法是检查字符串是否为空并设置结果tableview的属性HIDDEN = NO

答案 1 :(得分:2)

对此的解决方案是不使用UISearchDisplayController。它根本无法提供您做这样的事情所需的灵活性。使用UISegmentedControl,UISearchBar和UITableView构建您自己的自定义搜索界面,以获得最大的灵活性。

答案 2 :(得分:2)

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

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

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

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

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

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

这对我有用!