Ich habe stundenlang versucht, zu verstehen, wann ich den viewDidload verwenden soll: und wann ich initWithNibName verwenden soll: um die Eigenschaften meines viewControllers einzurichten.
Ich verwende zum Beispiel einen TableViewController und setze alle seine Eigenschaften (wie backgroundColor, se- parateColor, die Toolbar-Elemente) in initWithNibName. Es ist der richtige Weg zu tun?
Wenn jemand mich aufklären könnte.
Danke
Sie sollten Ihre Eigenschaften in viewDidLoad
einrichten. Diese Methode wird vom System aufgerufen, wenn die Ansicht des Controllers in den Speicher geladen wird. Das initWithNibName:
ist etwas, das Sie aufrufen, wenn Sie eine Controller-Instanz aus einer NIB-Datei erstellen.
Das heißt, wenn Sie Ihre Eigenschaften in initWithNibName:
einrichten und stattdessen init
aufrufen, ist Ihr Controller möglicherweise nicht in einem guten Zustand. Daher ist es am besten in viewDidLoad
.
Sie sollten viewDidLoad: Methode Ihres Controllers verwenden. Um aus der Dokumentation von Apple auf initWithNib zu zitieren:
Die von Ihnen angegebene Nib-Datei wird nicht sofort geladen. Es wird geladen, wenn auf die View-Controller-Ansicht zum ersten Mal zugegriffen wird. Wenn Sie nach dem Laden der NIB-Datei eine zusätzliche Initialisierung durchführen möchten, überschreiben Sie die Methode viewDidLoad und führen Sie Ihre Aufgaben dort aus.
initWithNibName: wird aufgerufen, wenn die NIB geladen und instanziiert wird.
viewDidLoad: wird aufgerufen, wenn Ihre Ansicht tatsächlich auf dem Bildschirm angezeigt wird.
Und ja - ich glaube, dass in Ihrem Fall die Einstellung von Farben und dergleichen am besten in initWithNibName
erfolgtTags und Links objective-c viewdidload