Frage

Viel habe ich Gespräche über die Vorteile der Einstellung Ihrer UI bis in IB lesen. Und wie, wenn die Spitze „aufgeweckt“ wird alle Objekte in es „zum Leben erweckt“.

Ich experimentiere mit Platzierung etwa 10 UIView Objekte in eine Feder, die von einem Viewcontroller gehört. Die UIView Objekte sind vom Typ MyView und werden zurück zu ihren jeweiligen Eigenschaften in dem Viewcontroller verdrahtet. MyView ist eine Unterklasse von UIView mit einem paar zusätzlichen Eigenschaften wie ein UIImage * image & NSNumber * Wert.

Die Spitze deutlich lädt als ich einige andere UIImageView Elemente sehen können, die auch in der Spitze sind. Aber wenn ich versuche, eine Eigenschaft zu setzen in einem der 10 MyView Objekte Ich bin nicht in der Lage. Und im Debugger meine Eigenschaften für diese Objekte sind alle noch 0x0.

Ich war auch unter dem Eindruck, dass die initWithCoder Methode in meiner MyView Klasse wie jede dieser 10 Objekte erwachte aus dem Schlaf feuern würde, damit ich einige Eigenschaften zur Laufzeit einstellen könnte?!?

Wer weiß, was los ist ... Ich bin glücklich, für diese IB zu verlassen, aber ich dachte, es zu versuchen würde ...

War es hilfreich?

Lösung

viewDidLoad ist die erste Methode aufgerufen, wenn alle Objekte in der Ansicht erstellt wurde. initWithCoder wird aufgerufen, bevor einer von ihnen ist.

wird viewWillAppear nach viewDidLoad genannt, und rief, bevor etwas angezeigt wird - es jedes Mal aufgerufen wird, wo viewDidLoad nur, wenn Ihre Ansicht aufgerufen wird, Objekte erstellt werden

.

Andere Tipps

UIViewControllers ihre Ansichten laden, wenn zuerst die self.view Eigenschaft zugreifen. Versuchen Sie, um zu sehen, ob die viewDidLoad Methode des Controllers aufgerufen wird.

Auch ich erinnere mich, irgendwo zu lesen (könnte Apple-Dokumentation), die von einer Feder geladen mehr unabhängigen Ansichten aufweist, ist nicht, vor allem wegen der Speichernutzung empfohlen.

Ich vermute, es könnte sein, dass Sie die Ansicht auf die Dateien Besitzer zugeordnet haben.

Öffnen IB. In dem Fenster, das hat. Datei-Besitzer erste Responder Ansicht

Rechtsklick auf die „Ansicht“ Objekt. Wenn es nur eine Option „Neureferenzierung outlet“ dann bedeutet es, Sie den Blick in den Dateien Besitzer verdrahtet haben. Nehmen Sie einfach das kleine o neben diesem und ziehen Sie es bis zu den Dateien Besitzer. Einmal über Dateien Besitzer sollte ein neues Menü Popup und Sie können sollen „Ansicht“ auswählen können

Speichern Sie diese und sehen, ob jetzt arbeiten.

Schließlich prüfen, ob die „Datei Besitzer“ wird Ihre Klasse gesetzt wurde, können Sie einfach die Datei Besitzer auszuwählen und diese zu untersuchen. In einem der Dropdown-Menüs können Sie die Klasse wählen.

IB ist cool. Nicht aufgeben ... Speichert bis zu 70% von Ihnen Setup-Code (wie auf der WWDC von Apple angegeben) so dabei bleiben.

John.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top