App*_*Dev 6 uiviewcontroller viewdidload viewwillappear ios
我对这两个提到的方法有一个问题,因为在我的测试中我没有明确它们被称为的顺序.我认为,首先,viewDidLoad当viewController第一次加载时(如名称所示),并且在init方法之后立即调用.然后,我以为一旦viewDidLoad回来,viewWillAppear就会被召唤.如果你显示另一个viewController,然后你返回到这个,那么它应该已经加载,只会viewWillAppear被调用.
然而,在发展我做的印象是,没有订单时调用viewDidLoad和viewWillAppear...我couldn't发现这个生命周期苹果公司的文件中的明确说明,这如何实际工作?
谢谢!
her*_*ube 19
我想补充Caleb的答案:不要混淆视图控制器和视图!该名称viewDidLoad清楚地表明在加载视图后调用该方法.它是视图控制器进行加载.
关于视图生命周期和消息发送顺序的一些指示:
UIViewController的生命周期覆盖.loadView并viewDidLoad与故事板一起使用.viewWillAppear:等)我在这里停下来.您可以通过Google搜索"uiviewcontroller生命周期"找到更多自己的东西.
-viewDidLoad在控制器加载其视图时调用,这不一定在初始化之后.视图控制器在需要它们之前不会加载它们的视图,无论是显示还是出于任何其他原因.
-viewWillAppear在视图显示之前调用.这将是之后-viewDidLoad,但你不确切知道多久之后.-viewWillAppear每次显示视图时调用; -viewDidLoad如果视图在某个时刻被卸载(例如didReceiveMemoryWarning),则只会被第二次调用.这些日子不寻常,但它可能发生.
或者,如果将viewController设置为nil,如果视图控制器从导航堆栈中踢出,通常会发生这种情况,因此下次将其带到导航堆栈时,它需要-viewDidLoad再次调用.
| 归档时间: |
|
| 查看次数: |
18245 次 |
| 最近记录: |