我有一个包含tableView的viewController;我在表的标题中有一个UIView,并将searchDisplayController拖动到视图中,同时还有一个分段控件。 (由于某些原因,我不想使用范围,因为你想知道)。现在我的问题是这个检查 if(tableView == self.searchDisplayController.searchResultsTableView) 即使用户在searchBar中输入,cellForRow也会失败。我不知道为什么??!!据我所知,当您将控制器拖动到视图中时,所有代理等都会自动连接。只有当用户按下键盘上的搜索按钮然后滚动表格时,检查才会生效,我知道这不是它的工作方式!?
有人能说清楚这里会发生什么吗?它让我疯狂!
非常感谢
朱
答案 0 :(得分:9)
您也可以使用self.searchDisplayController.active
,例如:
if (self.searchDisplayController.active) {
return [searchResultArray count];
} else {
return [regularDataArray count];
}
希望这有帮助!虽然,如果你试图以正确的方式做到这一点,你应该有一个单独的数据源,一个用于搜索,一个用于默认版本。
答案 1 :(得分:1)
我无法解决这个问题,所以我采取了另一种方式。使用BOOL isSearchTable并在willShowSearchResultsTableView和willHideSearchResultsTableView中设置它。