2010-03-16 2 views
1

J'ai le problème que ma classe contrôleur de vue a trop de délégués et commence à devenir gros. Je veux écrire les délégués dans des classes séparées pour garder la classe de contrôleur de vue petite. Pour les délégués qui sont créés par programme (comme UIAlertViewDelegate), je pourrais le faire facilement.Comment extraire des délégués de la classe ViewController?

Le problème est dans les délégués affectés dans Interface Builder. Comment puis-je demander à l'IB d'affecter, par exemple, une autre classe comme UITableViewDelegate ou UITableViewDataSource? Ou comment choisir une autre méthode IBAction pour une retouche à l'intérieur d'un événement sur un bouton? Une solution serait de supprimer les connexions de IB et de les écrire par programme sur ViewDidLoad, mais comme j'ai beaucoup de ViewControllers, cela prendrait beaucoup de temps.

une autre idée?

Répondre

0

Vous faites glisser un objet NSObject de la bibliothèque dans IB et modifiez sa classe dans l'inspecteur. De cette façon, vous créez une instance de votre classe de délégué. Vous pouvez ensuite connecter la sortie de délégué de votre UITableView à l'objet nouvellement créé dans IB.

+0

merci qui me donne un début. Ce que je ne comprends pas, c'est quand une instance de mon délégué sera créée. En fait, j'ai un EXC_BAD_ACCESS lorsque les méthodes de délégué doivent être appelées et je suppose que l'objet délégué n'a pas pu être trouvé lors de l'exécution. – adranale

+0

bien .. il s'est avéré que je devrais faire une sortie de viewController à mon délégué et un objet délégué sera créé à l'exécution (je suppose que le View Controller sera chargé). – adranale

Questions connexes