2 votes

UITableView créer programmatically objet delegué?

J'ai une question concernant la configuration d'une classe de délégué personnalisée pour une utilisation avec UITableView. Voici ce que j'ai fait :

  • Créer une nouvelle classe (dans des fichiers *.h et *.m séparés pour la classe)
  • Confirmer que la nouvelle classe respecte les protocoles
  • Ajouter les méthodes requises.
  • Créer un pointeur vers le nouvel objet en utilisant @property et IBOutlet.
  • Dans InterfaceBuilder, créer et attribuer un modèle d'objet à ma nouvelle classe
  • Attribuer les connexions dataSource et delegate.

Tout fonctionne bien. Ma question est la suivante : si je ne veux pas utiliser InterfaceBuilder pour configurer et instancier ma nouvelle classe de délégué, comment puis-je faire cela dans Xcode à la place ? Plus précisément, comment pourrais-je :

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

3voto

Tom Irving Points 8113

Dans votre contrôleur de vue, créez une nouvelle instance de la classe déléguée et attribuez-la à votre propriété, assurez-vous de supprimer IBOutlet

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

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

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

Vous devriez probablement mettre tout cela dans viewDidLoad

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X