我正确实现了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];
}
}
为什么?
(不回答,我会在下面发布答案!)
答案 0 :(得分:0)
原因是我在故事板的同一视图中意外添加了多个UISearchDisplayControllers。
由于重叠,我直到在Xcode的文档大纲窗口中看到它才注意到它。
删除除一个搜索显示控制器以外的所有控制器后,它运行正常。 确保正确设置插座连接。
花了一些时间才发现,所以我希望这对某人有所帮助。