2011-08-05 3 views
1

ViewAはセクション単位でデータを一覧表示し、行を選択するとViewBに移動します。潜在的にいくつかのフィールドを編集した後、戻るボタンを使用してViewAに戻ります。セクションヘッダーとして使用されている属性がViewBで編集されている場合、その値を取り消して戻ってこない限り、新しい値はViewAに表示されません。テーブルビューのセクションヘッダーは更新されません。

これを解決する唯一の方法は、fetchedResultsControllerをnilに設定し、[self.tableView reloadData]を設定してFRCをリロードすることです。しかし、これはひどく非効率的です。より良い方法がありますか?

答えて

1

これを信じるかどうかは、[theTableView_A reloadData]がこれを行うための推奨された方法です。それは非効率的だと思われますが、本当にすべてのラベル、セル、ヘッダー、フッター、スペーシングなどが正しくレイアウトされていることを確認する唯一の方法です。 - あなたが必要なものを行う可能性がある

変更 のみセクションの更新に対処することができます
- (void)reloadSections:(NSIndexSet *)sections withRowAnimation:(UITableViewRowAnimation)animation 

のようなものがある...と言いました。

一方、reloadDataは、シーンの背後で大量に最適化され、セルやその他の多くのオブジェクトをキャッシュして、再計算してはならないものを再描画する必要がないようにします。

+0

ありがとうございました - 私はそれが事実であることを望んでいました(最適化されているように悪くない)。 – janineanne

関連する問題