2010-12-21 15 views

Antwort

231

Je nachdem, welche Art von Aktionen, die Sie durchführen müssen, gibt es verschiedene Techniken:

  1. -(id)initWithFrame:(CGRect)frame - UIView designierter initializer; immer an eine UIView gesendet, um sie zu initialisieren, es sei denn, die Ansicht wird von einer Schreibfeder geladen;
  2. -(id)initWithCoder:(NSCoder *)coder - wird immer gesendet, um eine UIView zu initialisieren, wenn die Ansicht von einer Schreibspitze geladen wird;
  3. -(void)awakeFromNib - gesendet, nachdem alle Objekte in der Schreibfeder initialisiert und verbunden wurden; nur anwendbar, wenn Sie das Objekt von einer Spitze laden; Sie müssen super anrufen;
  4. -(void)willMoveToSuperview:(UIView *)newSuperview - wird gesendet, unmittelbar bevor die Ansicht als Unteransicht einer anderen Ansicht hinzugefügt wird; newSuperview kann Null sein, wenn Sie die Ansicht aus ihrer Superansicht entfernen;
  5. -(void)willMoveToWindow:(UIWindow *)newWindow - wird gesendet, unmittelbar bevor die Ansicht (oder ihre Superansicht) zu einem Fenster hinzugefügt wird; newWindow kann Null sein, wenn Sie die Ansicht aus einem Fenster entfernen;
  6. -(void)didMoveToSuperview - wird gesendet, unmittelbar nachdem die Ansicht in eine Ansichtshierarchie eingefügt wurde;
  7. -(void)didMoveToWindow - wird gesendet, unmittelbar nachdem die Ansicht ihre Fenstereigenschaften festgelegt hat. -

Grundsätzlich kann man vier Aktionen, die während der Initialisierung (1 & 2) durchzuführen, nachdem es von einer Spitze zu laden (3), vor dem Einsetzen in eine Ansichtshierarchie (4 & 5) und danach (6 & 7).

+0

Vielen Dank perfekte Antwort (sehr detailliert). Ich änderte ein segmentiertes Steuerelement und es zeigte die Änderungen nicht an, da ich die Modifikationsmethode während der Init aufgerufen habe, ich habe es nach didMoveToWindow verschoben und es hat alle Probleme behoben – aryaxt

+0

schön erklärt..mark als Community-Wiki – yasirmturk

+1

Es scheint das alles zu sein passierte vor viewDidLoad in viewController –

Verwandte Themen