2009-06-04 8 views
0

Si j'ai une vue avec plusieurs boutons, une table et d'autres contrôles, ai-je besoin d'un contrôleur pour chaque type (bouton, table, etc.) ou dois-je avoir un contrôleur par vue qui gère toutes les actions nécessaires ? Il ne semble pas qu'un seul contrôleur soit possible car ils peuvent hériter de différentes classes parentes. Quelle est la meilleure méthode?Ai-je besoin de plusieurs contrôleurs pour une seule vue avec différents types de contrôles?

Répondre

1

Vous pouvez utiliser un contrôleur pour tous ceux-là. Mettez toutes vos actions dans le contrôleur et connectez les boutons en déclarant IBActions et en les associant dans Interface Builder. Les premiers chapitres de Cocoa Programming pour Mac OS X d'Aaron Hillegass l'expliquent très bien.

Si vous avez un UITableView, vous devez vous rappeler de mettre en place la UITableViewDelegate et assurez-vous que vous mettre en œuvre les méthodes dont il a besoin:

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

Pour les autres, mis en place IBOutlets dans votre contrôleur et les accrocher dans Interface Builder. Selon les contrôles que vous utilisez, vous pouvez avoir besoin d'autres délégués (par exemple un délégué de champ de texte).

1

Excellente réponse, nevan. De plus, les API Cocoa (Touch) utilisent beaucoup les délégués. Cela vous permet d'utiliser un seul contrôleur pour plusieurs choses sans avoir à tout sous-classer. Le contrôleur est alors un délégué pour plusieurs composants (tel qu'un UITableView).

Questions connexes