在搜索模式下从UITableView中删除标题标题

时间:2012-08-30 16:17:57

标签: objective-c uitableview ios5

刚刚注意到我的UITableView中有一些不受欢迎的行为,当它处于搜索模式时。以下是该问题的直观描述,我怀疑的方法实现在底部。

(步骤1)完整列表 - 确定!

enter image description here


(第2步)搜索结果 - 确定!

enter image description here


(步骤3)深入搜索结果 - 确定!

enter image description here


(步骤4)导航回搜索结果 - 不行!正在返回所有标头索引......

enter image description here


这是我的方法实现,它返回所有索引:

-(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];
  }

}

解决此问题的最佳做法是什么?

由于

1 个答案:

答案 0 :(得分:2)

如果在[self.tableView reloadData]viewWillAppear:内调用viewDidAppear:,我会发现此行为。

似乎reloadData会导致基础表视图的所有节标题出现,即使搜索处于活动状态且只有searchResultsTableView应该可见。

解决方案可能是仅在reloadData时调用[self.searchDisplayController isActive] == NO