05_视图控制器_2 UIViewController的生命周期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了05_视图控制器_2 UIViewController的生命周期相关的知识,希望对你有一定的参考价值。

在视图控制器从生到死的过程中,会经历以下进程

 1 - (void)viewDidLoad {
 2     [super viewDidLoad];
 3     // Do any additional setup after loading the view from its nib.
 4 }
 5 
 6 - (void)viewWillAppear:(BOOL)animated{
 7     [super viewWillAppear:animated];
 8     NSLog(@"视图将要显示");
 9 }
10 - (void)viewDidAppear:(BOOL)animated{
11     [super viewDidAppear:animated];
12     NSLog(@"视图已经显示");
13 }
14 
15 - (void)viewWillLayoutSubviews{
16     [super viewWillLayoutSubviews];
17     NSLog(@"viewWillLayoutSubviews");
18 }
19 - (void)viewDidLayoutSubviews{
20     [super viewDidLayoutSubviews];
21     NSLog(@"viewDidLayoutSubviews");
22 }
23 
24 - (void)viewWillDisappear:(BOOL)animated{
25     [super viewWillDisappear:animated];
26     NSLog(@"视图将要移除");
27 }
28 - (void)viewDidDisappear:(BOOL)animated{
29     [super viewDidDisappear:animated];
30     NSLog(@"视图已经移除");
31 }
32 - (void)dealloc{
33     NSLog(@"视图被销毁");
34 }

其中最一开始被调用的应该是loadView方法,但因现阶段水平不足,不敢去复写该方法

在一次切换界面,产生以下输出结果

2016-07-01 20:36:25.001 task2[11634:670742] 视图将要显示
2016-07-01 20:36:25.005 task2[11634:670742] viewWillLayoutSubviews
2016-07-01 20:36:25.005 task2[11634:670742] viewDidLayoutSubviews
2016-07-01 20:36:25.039 task2[11634:670742] viewWillLayoutSubviews
2016-07-01 20:36:25.040 task2[11634:670742] viewDidLayoutSubviews
2016-07-01 20:36:25.050 task2[11634:670742] 视图已经显示
2016-07-01 20:36:30.011 task2[11634:670742] 视图将要移除
2016-07-01 20:36:30.520 task2[11634:670742] 视图已经移除

其中视图布局被调用两次,第一次是布局系统自己添加的控件,第二次是布局编程者添加的控件

@end

以上是关于05_视图控制器_2 UIViewController的生命周期的主要内容,如果未能解决你的问题,请参考以下文章

导航控制器和记忆值

无法获取远程视图控制器并出现错误:错误:域 = _UIViewServiceInterfaceErrorDomain,代码 = 2

Storyboard 中新视图控制器的类

子视图与子视图控制器 z 位置

弹出到根视图控制器时崩溃

XCODE:2 个视图控制器连接一个 segue 和 2 个 Uilabels 数据