0

これまでのところ、コントローラー内からビューを更新しただけです。現在、アプリケーションの別のクラス C で発生しているイベントに基づいて、ビュー (テキスト ラベル) 内の要素を更新する必要があるという別の状況にあります。これは基本的なことだと思いますが、これを処理する適切な方法がわかりません。

  • C の init メソッドでビュー コントローラーを渡す必要がありますか? (クラスCを初期化するたびにView Controllerを渡すのは面倒なようです。リファクタリングもたくさん必要です。)

  • [[UIApplication sharedApplication] delegate] を呼び出して C 内からアプリ デリゲートを取得し、アプリ デリゲートから必要なビュー コントローラーを取得する必要がありますか?

どちらのアプローチも、実用的でもエレガントでもありません。

より良い方法はありますか?

4

1 に答える 1

0

最も一般的な 2 つの方法は、デリゲートと通知です。

あるケースでは、クラス C にデリゲート プロパティを指定し、それをビュー コントローラーに設定します。見栄えを良くするために、多くの API クラスで行われているのと同様のデリゲート プロトコルを定義できます。init で渡すこともできますが、プロパティを直接設定するのが標準です。

もう 1 つの方法は、イベントが発生したときにクラス C が送信する通知をビュー コントローラーでリッスンすることです。View Controller は、通知を受け取ると更新を行います。

于 2012-06-17T16:59:07.197 に答える