3

NSNotification特定の一連のイベントに使用します。ビュー1に「追加」ボタンがあり、クリックするとビュー1からビュー2、ビュー3、ビュー1に戻るという3つのビューがあります。

1->2->3->1

ビュー 1 の [追加] ボタンがクリックされた場合は、sを使用NSNotificationしてビュー コントローラーをプッシュし、ビュー 1 によって投稿された通知に基づいて、他のビューをそれぞれ更新します。

ビュー 1 から通知が送信されると、ビュー 2 だけがそれを受け取ります。ビュー 3 にはありません。

これはどのように可能ですか?オブザーバーのコードは、ビュー 2 とビュー 3 でまったく同じです。

これはビュー 2 とビュー 3 にオブザーバーを追加するためのコードです。

[[NSNotificationCenter defaultCenter] addObserver:self 
                                         selector:@selector(didPressAdd:) 
                                             name:@"DidAddNotification" 
                                           object:nil];

dealloc()関数内でも適切に削除します。

4

2 に答える 2

3

ナビゲーション コントローラーを使用して 1 に戻ると、2 と 3 が削除されます。リスナーが割り当て解除された後、通知をリッスンしないことがわかります。sample返品時に通知を送信するように を更新しました。

于 2011-06-10T16:39:52.207 に答える
1

これは、通知を送信した後にviewDidLoadandが呼び出されるためです。代わりに (xib ファイルを使用する場合)、またはそうでない場合 (たとえば) 他の方法で設定します。コントローラーをどこかで初期化したと仮定しますviewWillAppear:。コントローラーを初期化していない場合、コントローラー内の通知を実際にリッスンすることもできません。initWithNibName:bundle:initinitWithCoder:

于 2011-06-10T15:55:23.647 に答える