0

刚刚注意到我的 UITableView 在搜索模式下出现了一些不受欢迎的行为。这是对该问题的直观描述,底部是我怀疑的方法实现。

(第 1 步)完整列表 - 好的!

在此处输入图像描述


(第 2 步)搜索结果 - 好的!

在此处输入图像描述


(第 3 步)深入搜索结果 - 好的!

在此处输入图像描述


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

在此处输入图像描述


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

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

}

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

谢谢

4

1 回答 1

2

如果在or[self.tableView reloadData]内调用,我观察到了这种行为。viewWillAppear:viewDidAppear:

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

一个解决方案可能是reloadData仅在[self.searchDisplayController isActive] == NO.

于 2012-08-30T17:28:51.403 回答