IBOutlet est NIL lors de l'utilisation de l'avant d'appeler déclarations une classe?
-
20-09-2019 - |
Question
J'ai eu d'énormes problèmes avec cela, donc je dessinais un diagramme ...
texte alt http://tomsfil.es/7bdead0a.png
Je reçois avec succès à la classe A - MÉTHODE B, mais à ce moment-là, IBOutlet Z est Nil? :( Toutes les idées?
Note Quelqu'un m'a dit que ce pourrait être un Overrelease et d'utiliser NSZombieEnabled mais qui me confondre
La solution
Il est une question de quand vous appelez la classe. Juste après la création d'un contrôleur de vue avec initWithNibName, rien est câblé en fait encore -. Il est seulement après la vue est créé IBOutlets sont créés et câblés en
Une astuce est que vous pouvez simplement demander au contrôleur de vue pour .view, comme suit:
myViewController.view;
Ensuite, la vue sera créé et le IBOutlet existera. Une meilleure méthode cependant, est de créer des propriétés sur le contrôleur de vue que vous définissez, puis soit en viewDidLoad
, ou viewWillAppear
vous utilisez ces propriétés pour définir des valeurs pour vos sorties.