50 votes

Méthode d'initialisation personnalisée de viewController avec storyboard

im ayant de la difficulté à surchargeant la méthode d'initialisation pour mon CustomViewController c'est conçu dans mon Storyboard.

maintenant je suis en train de faire (dans mon mainViewController):

self.customViewController = [[UIStoryboard storyboardWithName:@"MainStoryboard_iPhone" bundle:nil] instantiateViewControllerWithIdentifier:@"CustomVC"];
self.customViewController.myObject = someObject;

et j'ai dans le viewDidLoad (CustomViewController)

    [self.label setText:self.myObject.someString];

Cela fonctionne ok.

Mais, est-ce la bonne manière? Dois-je ajouter une coutume méthode init (ou remplacer) à mon CustomViewController ? Comme initWithObject: ? Je ne sais pas comment appeler mon custom méthode init au lieu de UIStoryboard instantiateViewControllerWithIdentifier:, et je ne suis pas à recevoir des appels à l' init ni initWithNibName.

Peut-être que je devrais utiliser: - (id)initWithCoder:(NSCoder *)decoder.

Merci de me donner quelques conseils!

Merci!!!!

58voto

retainCount Points 2258

L'initialiseur désigné pour les contrôleurs de vue dans les storyboards est -initWithCoder: . Comme la plupart des contrôleurs de vue d'un storyboard sont créés via des étapes, vous voyez généralement l'état défini pendant -prepareForSegue:sender: .

Si vous instanciez un contrôleur de vue directement à partir du storyboard, comme dans l'exemple que vous avez fourni, le modèle que vous avez sélectionné est approprié.

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