为什么UISearchDisplayController有时会工作,有时候不行?

时间:2014-03-06 22:50:15

标签: uisearchbar uisearchdisplaycontroller

我正确实现了UISearchBar和UISearchDisplayController来过滤UITableView中的单元格。

有时它工作正常并根据输入的搜索词过滤单元格。 但有时 - 不改变代码行 - 它不会过滤并显示所有单元格。

在tableView委托中,我注意到下面的IF语句为FALSE,因此会在searchResultsTableView中将所有联系人显示为搜索结果。

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    if (tableView == self.searchDisplayController.searchResultsTableView)
    {
        return [_searchResultContacts count];
    }
    else
    {
        return [_allContacts count];
    }
}

为什么?

(不回答,我会在下面发布答案!)

1 个答案:

答案 0 :(得分:0)

原因是我在故事板的同一视图中意外添加了多个UISearchDisplayControllers。

由于重叠,我直到在Xcode的文档大纲窗口中看到它才注意到它。

enter image description here

删除除一个搜索显示控制器以外的所有控制器后,它运行正常。 确保正确设置插座连接。

花了一些时间才发现,所以我希望这对某人有所帮助。