1

私は長い文字列リストを持つテーブルビューを持っています。各セクションのヘッダー、右側のインデックス、および検索ボタンがあります。 これはUISearchDisplayControllerを使用してプログラムで実装されています(IBではなく)。UISearchDisplayControllerキャンセルボタンはヘッダーとインデックスを更新しません。

検索ボタンがアクティブになると、私は(titleForHeaderInSectionで)ヘッダを隠し、および(sectionIndexTitlesForTableViewで)インデックスを隠し、問題は、キャンセルボタンがクリックされたときに、ある
if ([self.searchDisplayController isActive])

を尋ねることによって、ヘッダーとインデックスは最初は隠されたままです。私は[self.tableView reloadData]に電話しようとしましたが(searchBarCancelButtonClicked)、動作しません。

viewWillAppearには[self.tableView reloadData]があります。これは、行を選択すると、別のビューをスタックにプッシュしてから、このテーブルに戻って、ヘッダーとインデックスが必要になります。

何が間違っていますか?

答えて

0

私が見つけたその時々、[のtableView reloadData]は動作しない場合、この意志やって:、時にはテーブルビューは、それがされるまで待機しなければならないような状態になる理由を問わず

[tableView performSelector:@selector(reloadData) withObject:nil afterDelay:0]; 

をリロード前の実行ループによる次の反復が有効になります。

+0

ニース。ありがとうございました。 – coco

+0

あなたは大歓迎です!また、reloadDataが見つけたアニメーションをキャンセルするため、リロードと一緒に行挿入/削除アニメーションを実行したい場合は、0より大きい遅延を入れてください(0.3がうまくいきます)。 – Bogatyr

関連する問題