if(tableView == self.searchDisplayController.searchResultsTableView)失败

时间:2012-06-22 15:14:22

标签: iphone ios uisearchdisplaycontroller

我有一个包含tableView的viewController;我在表的标题中有一个UIView,并将searchDisplayController拖动到视图中,同时还有一个分段控件。 (由于某些原因,我不想使用范围,因为你想知道)。现在我的问题是这个检查     if(tableView == self.searchDisplayController.searchResultsTableView) 即使用户在searchBar中输入,cellForRow也会失败。我不知道为什么??!!据我所知,当您将控制器拖动到视图中时,所有代理等都会自动连接。只有当用户按下键盘上的搜索按钮然后滚动表格时,检查才会生效,我知道这不是它的工作方式!?

有人能说清楚这里会发生什么吗?它让我疯狂!

非常感谢

2 个答案:

答案 0 :(得分:9)

您也可以使用self.searchDisplayController.active,例如:

if (self.searchDisplayController.active) {
    return [searchResultArray count];
} else {
    return [regularDataArray count];
}

希望这有帮助!虽然,如果你试图以正确的方式做到这一点,你应该有一个单独的数据源,一个用于搜索,一个用于默认版本。

答案 1 :(得分:1)

我无法解决这个问题,所以我采取了另一种方式。使用BOOL isSearchTable并在willShowSearchResultsTableView和willHideSearchResultsTableView中设置它。