码迷,mamicode.com
首页 > 其他好文 > 详细

viewcontroller 各事件的执行顺序说明

时间:2015-04-19 17:44:17      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

今天在用storyboard 写界面开发时遇到一些奇怪的问题。因此记录下用storyboard 布局。以及在代码中使用这些布局应该注意的问题。

/*****************刚学IOS不久,问题幼稚与否,还请各位大神轻虐*******************************/

我的工程界面布局是使用的storyboard 和约束,为了适配方便。

习惯在viewDidLoad中对控件进行一些自定义操作。但是发现,即使页面控件以及与头文件中的IBoutlet 连线了。在viewDidLoad函数中读取这些控件时,返回的都是nil。一开始很是郁闷,找不到原因,猜测是viewDidLoad函数中,storyboard界面中的控件还没初始化。因此查阅了viewController的常见的方法。最终把对控件的一些自定义修改写在了函数viewDidLayoutSubviews里。即等到控制器管理的视图把它包含的所有子视图排列完成后,再进行一些自定义的修改。

viewController中各事件有执行先后顺序,因此不同的函数中适合做不要的事情,对此做一个总结。

 initWithNibName:bundle:

初始化UIViewController.也可以自定义init方法。但是在写自定义init方法。先要调用[super initWithNibName:nil bundle:nil]。

 loadView

访问viewcontroller的view时,如果view为nil会自动调用该方法。
viewDidLoad       当该控制器管理的视图被装载完成后,系统自动调用该方法。重写该方法时要先调用[super viewDidLoad]。
viewWillAppear   当该控制器管理的视图将要显示出来时,系统自动调用该方法。
viewDidAppear 当该控制器视图的视图显示出来后,系统自动调用该方法。
viewWillLayoutSubviews 当该控制器管理的视图将要排列它包含的所有子视图时,系统自动调用该方法。
viewDidLayoutSubviews   当该控制器管理的视图把它包含的所有子视图排列完成后,系统自动调用该方法。
ViewWillDisappear 当该控制器管理的视图将要被隐藏或者将要被移出窗口时,系统自动调用该方法。  

还有就是viewDidDisappear.

那么使用storyboard布局界面时,在viewDidLoad访问空间为nil的问题已经很明显了。因为在storyboard中使用约束来布局。在viewDidLoad函数中,各空间的排列还没完成,自然是访问不到了。

 

 

viewcontroller 各事件的执行顺序说明

标签:

原文地址:http://www.cnblogs.com/xingyuwangchuan/p/4439350.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!