2009-06-04 9 views
0

複数のボタン、テーブル、その他のコントロールを持つビューを持っている場合、各タイプ(ボタン、テーブルなど)ごとにコントローラが必要ですか、またはビューごとに1つのコントローラですべての必要なアクションを処理する必要があります?彼らは異なる親クラスから継承しなければならないかもしれないので、単一のコントローラーは可能ではないようです。最善の方法は何ですか?異なるタイプのコントロールを持つ1つのビューに複数のコントローラが必要ですか?

答えて

1

すべてのコントローラに1つのコントローラを使用できます。すべてのアクションをコントローラに入れ、IBActionsを宣言しInterface Builderでリンクすることでボタンを接続します。 Aaron HillegassによるMac OS X用のCocoaプログラミングの最初の数章では、このことがとてもうまく説明されています。お使いのコントローラでIBOutletsを設定し、他人のために

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

、およびそれらをフック:あなたはのUITableViewを持っている場合は

、あなたはUITableViewDelegateを設定し、あなたがそれを必要とするメソッドを実装していることを確認するために忘れてはいけませんInterface Builderで起動します。使用しているコントロールによっては、他の代理人(たとえば、テキストフィールド代理人)が必要な場合があります。

1

優れた応答、ネバン。また、Cocoa(Touch)APIは代理人を多用しています。これにより、すべてをサブクラス化することなく、複数のものに対して単一のコントローラを使用することができます。コントローラは、次に、いくつかのコンポーネント(UITableViewなど)のデリゲートです。

関連する問題