这非常令人沮丧:即使搜索字符串为空,我也试图在UISearchDisplayController中显示未过滤的结果。
向numberOfSectionsInTableView:
和numberOfRowsInSection:
添加调试代码表明,当我的搜索字符串为空时,返回非零整数,但永远不会调用cellForRowAtIndexPath:
! tableview似乎是隐藏的。
我尝试在tableview.hidden=NO;
中设置searchDisplayController:(UISearchDisplayController *)controller didHideSearchResultsTableView:(UITableView *)tableView
无效。
这不是那么难以实现,我想这是一件很常见的事情!
答案 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 = @"";
这对我有用!