2011-12-04 9 views
0

私は他の1つのビューと通信したい多くのビューを持っています。その別のビューを「メインビュー」と呼ぶことにします。私がしたいことは、 "他の多くのビュー"がサブビューを追加する "メインビュー"にメソッドを送信できるようにすることです。デリゲートメソッドを作成できますか?もしそうなら、私は "メインビュー"でデリゲートを作成し、 "それ以外の多くのビュー"で設定する必要があります。私はデリゲートがどのように働いているかを考えています。これはどのように実装する必要がありますか?委任

答えて

1

「デリゲート」という用語は、通常、オブジェクトが十分に一般的な場合にのみ使用され、さまざまな可能性のあるさまざまな代理人がいる多くの状況で再利用されます。たとえば、非常に汎用的なオブジェクトであるテーブルビューには、ビヘイビアをカスタマイズするデリゲートがありますが、独自のカスタムビューを自分の目的に使用することはできません。

「他の」ビューと「メイン」ビューとの間に非常に単純に多対1の関係があるようです。 「その他の」ビュー(例:mainView)にプロパティを設定するだけでも、「その他の」ビューに「メイン」ビューポインタに簡単にアクセスしてメッセージを送信することができます。

+0

私はビューを表示する "メインビュー"でクラスメソッド(インスタンスメソッドではない)を作成する方が良いでしょうか?次に、 "多くのビュー"のそれぞれで "メインビュー"へのポインタを作成し、 "メインビュー"クラスを "多くのビュー"から作成したメソッドを送信しますか?この場合、私は[self.view addsubview:whateverSubviewController.view]をクラスメソッドで呼び出すことはできません。 – morcutt

+0

または、「メインビュー」ビューコントローラにアクションを呼び出すボタンのターゲットを設定し、サブビューを表示する「メインビュー」にインスタンスメソッドを作成する必要がありますか? – morcutt

関連する問題