2010-08-29 5 views
6

Подводя итог, я работал над приложением, и кажется, что если я поместил UIAlert в viewDidLoad, он будет вызван дважды (из метода делегата UIImagePickerController). Если я поставлю его в viewDidAppear, он будет вызван один раз.Разница между viewDidAppear, viewDidLoad в iPhone/iOS?

Я просмотрел документацию, но это меня просто смущает.

+0

Не могли бы вы вывести код? – rano

+0

Вы пытались установить точку останова и проверить стек вызовов? – Mark

ответ

8

Объект UIView может быть загружен в память и выпущен несколько раз, не будучи добавленным в стек представления и появляющимся на дисплее.

Я предполагаю, что у вас есть 2 ссылки на это представление (возможно, одно в файле nib?), Поэтому оно загружается, а затем освобождается, когда вторая ссылка загружается и назначается одному и тому же свойству, тогда только последний получает добавлен в стек представления. Вы можете увидеть это, распечатав (NSLog) целочисленное значение self ("% ld", (long int) self) в методах viewDidLoad и viewDidAppear.

Смежные вопросы