2009-04-04 15 views
1

Ich habe mich darauf gefreut, einen Grund zu finden, warum meine Anwendung irgendwann zerquetscht wurde, und ich fand heraus, dass Methoden von UITableView vor oder gleichzeitig mit viewWillAppear aufgerufen werden.Warum werden UITableView-Methoden vor viewWillAppear aufgerufen?

In viewWillAppear habe ich Code, der die Anzahl der Zeilen in jedem Abschnitt initialisiert, aber numberOfRowsInSection wird aufgerufen, bevor ich das Array eingerichtet habe, die Menge an Zeilen in jedem Abschnitt hat.

Ich glaube, dass ViewDidLoad in meinem Fall nicht geeignet ist, da es nur einmal nach dem Start einer Anwendung aufgerufen wird. Habe ich recht? Und ich muss meine Initialisierungsfunktion jedes Mal aufrufen, wenn eine Ansicht auf dem Bildschirm erscheint.

Wie kann ich diesen Fehler beheben?

Vielen Dank im Voraus.

Antwort

2

Nun, ich denke, dieses "Problem" hat damit zu tun, dass mehrere Threads ausgeführt werden, die sich um die Ansicht und das UITableView kümmern.

Die Ansicht, die diese Ansicht aufruft, könnte (vor dem Wechsel zu dieser Ansicht) eine Methode auf der View aufrufen, die die Daten sammelt.

  1. Benutzer gedrückte Taste
  2. Sie Feuer eine Methode auf der Zielansicht Informationen
  3. wechseln Sammeln anzuzeigen

Sie mit Delegierten arbeiten konnten wissen, wann die Zielansicht Laden bereit ist, die Daten, die Sie benötigen, damit Sie dann zu dieser Ansicht wechseln können.

Hoffe, das hilft.

-1

Ich denke, die richtige Antwort ist, dass "[super viewWillAppear: animated]" wird UITableView Methode aufrufen. So ist es notwendig, diesen Code nach dem Code, der die tableView initialisieren.

Verwandte Themen