0

2 で a が押されbuttonたときにビュー コントローラー 1 でメニューを変更する必要があるアプリがあります。view controllerこれを達成するための最良の方法は何ですか?

よく聞く話NSNotificationだけどアラート表示用だと思ってた?

4

4 に答える 4

4

これを行う "正しい" 方法は、新しい状態をアプリのデータ モデルに書き込むことです。別のView Controllerがアクティブになると、モデルの内容に従ってビューを更新する必要があります。そうすれば、ユーザーが変更を行ったときに、それらが存在しない場合でも、情報は他のView Controllerで利用できます。

通知は、他のオブジェクトについて具体的に知らなくても情報を伝達するための優れた方法ですが、通知が送信された時点でそれを気にかけているオブジェクトが存在する場合にのみ、通知は有効です。

于 2013-04-24T19:27:46.850 に答える
1

あなたはこれについて間違った方法で考えています。あるView Controllerは、別のView Controllerで何が起こるかを気にするべきではありません。

ボタンをタップしてメニューの内容を変更すると、データを変更しているように聞こえます。ボタンを押すと、使用可能なオプションが変更されたことをモデル レイヤーに通知し、他のビュー コントローラーは使用可能なオプションをモデル レイヤーからメニューにロードする必要があります。

NSNotification について多くの話を聞いたことがありますが、それはアラートを表示するためのものだと思いましたか?

いいえ、イベントに関する情報をアプリケーションの残りの部分に、それらの部分を結合しない方法で配布するためのものです。ユーザーと対話することではありません。

于 2013-04-24T19:25:41.687 に答える
0

NSNotificationはそれを行う 1 つの方法であり、アラートとは関係ありません。

次のように機能します。「プロデューサー」は通知を投稿 (送信) できます。他のオブジェクトは、通知をサブスクライブし、通知に反応できます。これは、オブジェクトを分離する優れた方法です (多くの場合、各オブジェクトが他のオブジェクトに関する情報をできるだけ少なくすることが目標です)。

で検索するとNSNotification tutorial、かなりの数があります。これらは非常に便利なので、iOS および Mac OS X の開発でよく使用されます。

于 2013-04-24T19:26:34.337 に答える