我在使用导航控制器。我已经将两个视图控制器推到导航堆栈中。当我使用导航栏的back按钮从viewcontroller1返回viewcontroller2时,viewcontroller1的viewdidload
方法被称为again.But,据我所知,在加载时仅调用一次viewdidload。那为什么会发生这种事?请告诉我。
谢谢!!
发布于 2015-11-18 03:11:20
仅在加载视图控制器时才调用-(void)viewDidLoad
但是,如果要调用任何方法,则可以在
-(void)viewWillAppear
每当视图出现时,此方法都会调用。
发布于 2015-11-18 03:11:31
关于viewDidLoad
每次加载视图控制器的视图时都会调用viewDidLoad:
,而不仅仅是第一次加载。控制器的视图可以在控制器的生存期内多次加载和卸载,每次都会调用viewDidLoad
。当它不在屏幕上时,它可能被卸载,通常是在内存不足的情况下。
最佳实践
记住不要在viewDidLoad
中进行视图控制器初始化。这是一个常见的错误。对于只应该在加载视图控制器时发生一次的事情,请在控制器的init方法中执行。
https://stackoverflow.com/questions/33778426
复制相似问题