1

複数のビューとモデルを使用して、ナビゲーション ベースのビュー コントローラーを実装しました。

ここで、Interface Builder を介してナビゲーション コントローラーを Tabbar に追加します。(束全体をそれにドラッグしただけです)。うまくいきました。すべてのビューを含む新しいタブができました。

しかし今、まったく同じナビゲーション ビュー コントローラーを別のタブに再度追加したいと考えています。これを行うこともできますが、問題は、たとえばテーブル ビューでエントリを削除すると、エントリが他のタブに表示されたままになることです。

タブを切り替えたときにモデルを更新する方法が必要です。

アップデート:

テーブルビューを含むに追加しましたaddObserverRootViewController私はそれを「view did load」、delete メソッドの postNotification に配置しました。コンパイル エラーは発生しませんが、テーブルは相互に更新されません。

プロジェクトをアップロードしました。ご覧いただけますか?:

http://www.perry-paul.de/unternehmenf.zip

4

1 に答える 1

2

これを行う 1 つの方法は、 を使用することNSNotificationsです。

tableView を含む View Controller をロードするときは、tableView を使用して通知用にサインアップします。

[[NSNotificationCenter defaultCenter] addObserver:self.tableView selector:@selector(reloadData) name:@"ModelUpdated" object:nil];

その方法[self.tableView reloadData]は、「ModelUpdated」通知を投稿するたびに呼び出されます。したがって、エントリを削除するときは、次を使用して通知を送信します

[[NSNotificationCenter defaultCenter] postNotificationName:@"ModelUpdated" nil];

最後に、通知を削除することを忘れないでください (通常は にありviewDidUnloadます):

[[NSNotificationCenter defaultCenter] removeObserver:self name:"ModelUpdated" object:nil];

NSNotificationsこの質問の詳細: NSNotification とは?

于 2010-12-19T23:26:10.957 に答える