为啥 UISearchDisplayController 有时有效,有时无效?

Posted

技术标签:

【中文标题】为啥 UISearchDisplayController 有时有效,有时无效?【英文标题】:Why does the UISearchDisplayController sometimes work, sometimes not?为什么 UISearchDisplayController 有时有效,有时无效? 【发布时间】:2014-03-06 22:50:15 【问题描述】:

我正确实现了 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】:

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

因为重叠,直到在Xcode的文档大纲窗口中看到才注意到。

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

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

【讨论】:

以上是关于为啥 UISearchDisplayController 有时有效,有时无效?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 DataGridView 上的 DoubleBuffered 属性默认为 false,为啥它受到保护?

为啥需要softmax函数?为啥不简单归一化?

为啥 g++ 需要 libstdc++.a?为啥不是默认值?

为啥或为啥不在 C++ 中使用 memset? [关闭]

为啥临时变量需要更改数组元素以及为啥需要在最后取消设置?

为啥 CAP 定理中的 RDBMS 分区不能容忍,为啥它可用?