0

タブバーアプリがあり、2つのタブが同じクラス(異なるインスタンス)を使用してUITableViewを表示しています。クリックされたタブに基づいて、外観や機能などにいくつかの小さな変更が加えられます。私が抱えている問題は、UITableViewからモーダルビューを表示し、それが閉じられると、NSNotificationを送信してUITableViewをリロードすることです( UITableViewのビューコントローラ)ですが、アプリに同じクラスのインスタンスが2つあるため、2つのNSNotificationsが投稿されます。通知が呼び出されたインスタンスだけで通知が投稿されるようにするにはどうすればよいですか?

4

1 に答える 1

3

のハンドラーを設定するときに、 関心のある通知NSNotificationの対象を指定できます。object

最初のテーブルビューコントローラーは、モーダルビューコントローラーの特定のインスタンスから投稿された通知のみに関心があるように設定し、2番目のテーブルビューコントローラーは、モーダルビューコントローラーの特定のインスタンスから投稿された通知のみに関心があるように設定する必要があります。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handler:)
                                             name:notificationName 
                                           object:instanceOfModalViewController];

このように、モーダルビューコントローラから通知が投稿されると、関心を指定したテーブルビューコントローラのみが通知を処理します。

于 2011-02-28T16:20:54.853 に答える