2010-08-29 21 views
6

La ligne de fond est, j'ai travaillé sur une application, et il semble que si je place un UIAlert dans viewDidLoad, il est appelé deux fois (à partir d'une méthode déléguée de UIImagePickerController). Si je le mets en viewDidAppear, il est appelé une fois. J'ai regardé la documentation mais cela me rend confus.Différence entre viewDidAppear, viewDidLoad dans iPhone/iOS?

+0

Pourriez-vous poster un message quelconque? – rano

+0

avez-vous essayé de définir un point d'arrêt et de vérifier la pile des appels? – Mark

Répondre

8

Un objet UIView peut être chargé en mémoire et libéré plusieurs fois sans jamais être ajouté à la pile de vues et apparaître à l'écran. Je suppose que vous avez 2 références à cette vue (peut-être une dans un fichier nib?), Donc il est chargé, puis relâché lorsque la seconde référence est chargée et affectée à la même propriété, alors seulement ce dernier obtient ajouté à la pile de vue. Vous pouvez le voir en imprimant (NSLog) la valeur entière de self ("% ld", (long int) self) dans les méthodes viewDidLoad et viewDidAppear.