Wenn ich programmatisch eine UILabel in meiner benutzerdefinierten initWithNibName Methode zugeordnet und später in viewDidLoad, versucht, eine Zeichenfolge, um es zuzuweisen, das Etikett nicht auf etwas zeigt wurde. Ich habe es nicht veröffentlicht; Das Etikett wird auf dem Bildschirm angezeigt. Wenn ich das Label in IB erstellen und ihm in viewDidLoad Text zuweisen, funktioniert es.IB Objekte vs manuell zugeordneten Objekte in init/viewDidLoad
Ist es gegen eine Regel manuell zugeordneten Objekte in viewDidLoad einzurichten? Warum zeigt es nicht auf etwas, obwohl ViewDidLoad nach meinem init aufgerufen wird?
Vom doc von viewDidLoad:
Diese Methode wird aufgerufen, nachdem die View-Controller den damit verbundenen Ansichten in den Speicher geladen wurde. Diese Methode wird unabhängig davon aufgerufen, ob die Ansichten in einer NIB-Datei gespeichert oder in der loadView-Methode programmgesteuert erstellt wurden. Diese Methode wird am häufigsten verwendet, um zusätzliche Initialisierungsschritte für Ansichten auszuführen, die aus NIB-Dateien geladen werden.
In meinem init:
_descriptionLabel = [[UILabel alloc] initWithFrame:CGRectMake(20, 218, 280, 10)];
_descriptionLabel.numberOfLines = 0;
_descriptionLabel.lineBreakMode = UILineBreakModeWordWrap;
_descriptionLabel.font = [UIFont systemFontOfSize:12.0];
_descriptionLabel.adjustsFontSizeToFitWidth = NO;
_descriptionLabel.text = @"Description not found.";
_descriptionLabel.backgroundColor = [UIColor clearColor];
In viewDidLoad, ist der Wert der Variablen 0x0. Es ist das gleiche mit meiner manuell zugewiesenen UIButton, die vollständig funktioniert, sobald die Ansicht geladen wird.
Können Sie Beispielcode anzeigen, der nicht funktioniert? Ich weiß nicht, was Sie meinen, "das Etikett zeigte nicht auf irgendwas" – stefanB
Editierter Originalbeitrag zur Klarstellung. – hyn
Haben Sie das UILabel in IB erstellt, z. Ist es als IBOutlet UILable definiert und ist es mit einem UILabel-on-Fenster in IB verbunden oder versuchen Sie es pragmatisch zu erstellen, z. UILable * descLabel = [[...]]? – stefanB