Alle meine IBOutlet sind nil in viewDidLoad
Habe ich einen UIViewController
- wir rufen MyViewController1
. Wenn ich Anrufe MyViewController1
alle meine IBOutlet
sind null in viewDidLoad
(und in den rest des Codes auch).
Wenn ich diese controller-by-doing
MyViewController1 *vc = [[MyViewController1 alloc] init]
,
wenn ich ersetzen MyViewController1
durch eine andere, zum Beispiel MyViewController2
es funktioniert. Also ich denke das problem ist wirklich in MyViewController1
.
Letzte Sache, möchten Sie vielleicht wissen, ist, dass MyViewController1
ist eigentlich eine Unterklasse von MySuperViewController1
ist ein UIViewController
.
Vielen Dank für Ihre Hilfe !
BEARBEITEN
Mir bewusst, dass mein Fall war vielleicht komplizierter. Hier sind meine genauen Dateien :
//MySuperViewController1
MySuperViewController1.h
MySuperViewController1.m
MySuperViewController1.xib
//MyViewController1
MyViewController1.h
MyViewController1.m
Also die Feder gehört zu der Oberklasse, und nicht in der Subklasse auf. Kann ich das machen ?
MyViewController1 *vc = [[MyViewController1 alloc] initWithNibName:@"younibname"];
Haben, es zu versuchen.- Wie wäre
MyViewController1 *vc = [[MyViewController1 alloc] initWithNibName:@"MySuperViewController1"];
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie wahrscheinlich verwenden :
aufrufen
init
nicht tun, wird das Spiel mit Ihrem xib-Datei und nicht alloc Ihre verschiedenenIBOutlet
EDIT :
Gibt es zwei mögliche Lösungen :
Erste ist der Aufruf von init mit super nibName :
Den zweiten ruft die super
initWithNibName:
Kind in die init-Methode :MyViewController1 *vc = [[MyViewController1 alloc] initWithNibName:@"MySuperViewController1"]
initWithNibName:
ist nicht definiert.Ich hatte das gleiche problem nach dem brechen meinem Kopf merkte ich, Benennung der xib gleiche wie der name der Klasse ist mein problem gelöst.
Prüfen, ob IBoulet ist richtig verknüpft mit xib oder nicht. Überprüfen Sie auch die Dateien, die Eigentümer Ihrer xib.
Wenn Ihre Klasse Namen oder xib-name geändert ist
Versuchen Sie, reservieren Sie viewcontroller mit der richtigen xibName