2010-05-10 8 views
2

J'ai une question concernant la mise en place d'une classe déléguée personnalisée à utiliser avec UITableView. Ce que je l'ai fait est la suivante:UITableView crée par programme un objet délégué?

  • installation d'une nouvelle classe (en sperate * .h et les fichiers * .m pour la classe)
  • nouvelle classe que vous conformez aux protocoles <UITableViewDelegate, UITableViewDataSource>
  • Ajouté le nécessaire méthodes
  • Créé un pointeur vers le nouvel objet en utilisant @property et IBOutlet.
  • Dans InterfaceBuilder créé et attribué un modèle d'objet à ma nouvelle classe
  • Assigned les connexions DataSource et délégué.

Tout cela fonctionne très bien. Ma question est la suivante: si je ne veux pas utiliser interfaceBuilder pour installer et instancier ma nouvelle classe de délégués, comment dois-je faire cela dans Xcode? Plus spécifiquement, comment pourrais-je:

  • Instancier la classe déléguée, serait-elle créée/possédée par le contrôleur?
  • Définissez les connexions dataSource et Delegate?
  • Quelle est la meilleure façon de faire cela?

toute aide ou information est très appréciée.

Gary

Répondre

3

Dans votre contrôleur de vue, créer une nouvelle instance de la classe déléguée et l'assigner à votre propriété, assurez-vous d'enlever IBOutlet

MyDelegateClass * delegateClass = [[MyDelegateClass alloc] init]; 
[self setMyProperty:delegateClass]; 
[delegateClass release]; 

Vous pouvez définir de définir le délégué de votre tableview et source de données en faisant:

[myTableView setDelegate:self.myProperty]; 
[myTableView setDatasource:self.myProperty]; 

Vous devriez probablement mettre tout cela dans viewDidLoad

+0

Tom était plus rapide et il a raison :) – stigi

Questions connexes