iPhone / iOS中的viewDidAppear,viewDidLoad之间的区别?

底线是,我一直在一个应用程序,似乎如果我把一个UIAlertviewDidLoad ,它被调用两次(从UIImagePickerController的委托方法)。 如果我把它放在viewDidAppear ,它会被调用一次。

我查看了文档,但它只是让我困惑。

一个UIView对象可以被加载到内存中并被多次释放,而不会被添加到视图堆栈中并出现在显示器上。

我的猜测是你有2个引用这个视图(也许一个在一个nib文件?),所以它被加载,然后释放时,第二个引用加载并分配给相同的属性,那么只有后者被添加到视图叠加。 您可以通过在viewDidLoad和viewDidAppear方法中打印出(NSLog)self(“%ld”,(long int)self)的整数值来看到这一点。