刚刚注意到我的UITableView中有一些不受欢迎的行为,当它处于搜索模式时。以下是该问题的直观描述,我怀疑的方法实现在底部。
(步骤1)完整列表 - 确定!
(第2步)搜索结果 - 确定!
(步骤3)深入搜索结果 - 确定!
(步骤4)导航回搜索结果 - 不行!正在返回所有标头索引......
这是我的方法实现,它返回所有索引:
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
NSArray *sKeysArray = [[listContent allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
sorted = [sKeysArray sortedArrayUsingComparator:self.mySortBlock];
if (tableView == self.searchDisplayController.searchResultsTableView){
return @"";
} else {
return [sorted objectAtIndex:section];
}
}
解决此问题的最佳做法是什么?
由于
答案 0 :(得分:2)
如果在[self.tableView reloadData]
或viewWillAppear:
内调用viewDidAppear:
,我会发现此行为。
似乎reloadData
会导致基础表视图的所有节标题出现,即使搜索处于活动状态且只有searchResultsTableView
应该可见。
解决方案可能是仅在reloadData
时调用[self.searchDisplayController isActive] == NO
。