0

検索モードのときに、UITableViewの望ましくない動作に気づきました。これが問題の視覚的な説明であり、疑わしいメソッドの実装が下部にあります。

(ステップ1)完全なリスト-OK!

ここに画像の説明を入力してください


(ステップ2)検索結果-OK!

ここに画像の説明を入力してください


(ステップ3)検索結果にドリルイン-OK!

ここに画像の説明を入力してください


(ステップ4)検索結果に戻る-OKではありません!すべてのヘッダーインデックスが返されます...

ここに画像の説明を入力してください


これが、すべてのインデックスを返す私のメソッドの実装です。

-(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

または[self.tableView reloadData]内で呼び出された場合、この動作を観察しました。viewWillAppear:viewDidAppear:

reloadData検索がアクティブで、のみが表示されている場合でも、基になるテーブルビューのすべてのセクションヘッダーが表示されるようsearchResultsTableViewです。

reloadData解決策は、の場合にのみ呼び出すことです[self.searchDisplayController isActive] == NO

于 2012-08-30T17:28:51.403 に答える