调用顺序为

1 init函数(init;initWithFrame;initWithCoder;等)--初始化

2 awakeFromNib--在loadView之前的工作放在这里

3 viewDidLoad--注意,一个ViewController一个生命周期内这个函数只会调用一次

4 viewWillAppear -- view将要出现,每次View消失再出现都会调用

5 viewWillLayoutSubviews--简要对子试图进行布局

6 viewDidLayoutSubivews--完成对子试图布局

7 viewDidAppear--视图将要出现在屏幕上

---上述代码不含部分

8 viewWillDisappear--View将要消失

9 viewDidDisappear--View已经消失

 
这九个就是通常的视图控制器生命周期内函数调用顺序,一定要清楚什么样的代码应该放在视图控制器生命周期的什么位置
 

当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序

1、 alloc                                   创建对象,分配空间

2、init (initWithNibName) 初始化对象,初始化数据

 
3、loadView                          从nib载入视图 ,通常这一步不需要去干涉。除非你没有使用xib文件创建视图
 loadView :总结一句话,苹果设计这个方法就是给我们自定义UIViewController的view用的
 
4、viewDidLoad                   载入完成,可以进行自定义数据以及动态创建其他控件

    1.什么时候被调用?

     无论你是通过xib文件还是重写loadView方法创建UIViewController的view,在view创建完毕  后,最终都会调用viewDidLoad方法
     2.有什么作用?
     一般我们会在这里做界面上的初始化操作,比如往view中添加一些子视图、从数据库或者网络加载模型数据装配到子视图中。

5、viewWillAppear              视图将出现在屏幕之前,马上这个视图就会被展现在屏幕上了

6、viewDidAppear               视图已在屏幕上渲染完成

当一个视图被移除屏幕并且销毁的时候的执行顺序,这个顺序差不多和上面的相反

1、viewWillDisappear            视图将被从屏幕上移除之前执行

2、viewDidDisappear             视图已经被从屏幕上移除,用户看不到这个视图了

3、dealloc                                 视图被销毁,此处需要对你在init和viewDidLoad中创建的对象进行释放
 
一定要弄清 initWithFrame、initWithCoder、awakeFromNib  这三个方法都是在什么情况下调用
        *initWithFrame 通过代码创建控件会执行
        *initWithCoder、awakeFromNib 是通过xib加载控件会执行
        *initWithCoder 可以在这个方法里面添加子控件。在此方法里面设置原有子控件一次性的值是"不行”的-->> 归档解档 
        *awakeFromNib 代表子控件从xib里面加载完成并且 连线完成-->直接可以使用
    
 

supersr--控制器的生命周期:的更多相关文章

  1. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...

  2. iOS视图控制器的生命周期

    今天面试有一道面试题因为回答不好,因为也不经常涉及所以有点模糊,我选择了最保守的回答,没有展开写出我对这个问题的理解. 问题:IOS 开发 loadView 和 viewDidLoad 的区别? 经过 ...

  3. 通俗易懂的讲解iphone视图控制器的生命周期

    IOS 视图控制器的生命周期非常非常重要,所以我有必要写个文章来和大家一起探讨问题. 今天在学习视图控制器的生命周期,也看了一下网上的一些资料,但总觉得不是那么好理解,首先我们来看一张图: 先粗略讲一 ...

  4. iOS 控制器的生命周期(UIController)

    前言: 在iOS开发中,控制器的生命周期非常重要,什么时候加载页面,什么时候请求接口,什么时候刷新界面等等,都有很多值得优化的地方 loadView: 最先执行的方法,控制器关联的有Nib文件的时候, ...

  5. iOS UI-(多)视图控制器的生命周期、加载方法和模态视图方法以及屌丝方法

    #import "ViewController.h" #import "SecondViewController.h" @interface ViewContr ...

  6. 控制器view生命周期

    控制器View的生命周期方法:只要是控制器的生命周期方法,都是以view开头. 控制器View加载完成时调用- (void)viewDidLoad { [super viewDidLoad];} 控制 ...

  7. yii2 控制器的生命周期

    控制器生命周期 http://www.yii-china.com/doc/guide/structure_controllers.html 处理一个请求时,应用主体 会根据请求路由创建一个控制器,控制 ...

  8. ios 控制器的生命周期

    #pragma mark - 控制器生命周期 // 视图将要出现 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:anima ...

  9. 1210笔记//关于导航实例-QQ空间//导航实例-storyboard实现//控制器的生命周期//控制器的生命周期方法

      一.利用storyboard完成导航1.storyboard中用来跳转的每一根线 都是 一个 UIStoryboardSegue对象1> 自动跳转 (从 某个按钮 拖线到 下一个目的控制器) ...

  10. iOS控制器的生命周期分析和使用

    转自http://blog.csdn.net/qijianli/article/details/7826979 iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面 ...

随机推荐

  1. Timestamp 使用

    Timestamp是一个长整形的类型 1.使用方法一 Timestamp nowdate1 = new Timestamp(System.currentTimeMillis()); System.ou ...

  2. The report for triangle problem

    本次实验主要使用eclipse 编写三角形判定的代码,并用junit进行测试. 1.安装junit和hamcrest 下载junit-4.12.jar和hamcrest-all-1.3.jar 并且拖 ...

  3. Win7 x64bit安装Oracle10g

    解决方案:   步骤一:在解压出的oracle文件夹中搜索refhost.xml文件,搜索结果出现2条符合条件文件,这两个文件均需要修改.   打开文件发现内容中有包含...5.0 6.0等系统说明, ...

  4. [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统

    [BZOJ1056][BZOJ1862][HAOI2008][Zjoi2006]排名系统 试题描述 排名系统通常要应付三种请求:上传一条新的得分记录.查询某个玩家的当前排名以及返回某个区段内的排名记录 ...

  5. SNMP详解

    简单网络管理协议(SNMP)是TCP/IP协议簇的一个应用层协议.在1988年被制定,并被Internet体系结构委员会(IAB)采纳作为一个短期的网络管理解决方案:由于SNMP的简单性,在Inter ...

  6. 剑指Offer 和为S的两个数字

    题目描述 输入一个递增排序的数组和一个数字S,在数组中查找两个数,使得他们的和正好是S,如果有多对数字的和等于S,输出两个数的乘积最小的. 输出描述: 对应每个测试案例,输出两个数,小的先输出. 思路 ...

  7. 2015校招网易C/C++工程师笔试题(附答案)

    1. #include < filename.h >和#i nclude “filename.h” 有什么区别?   答:对于#i nclude < filename.h >, ...

  8. Graphic32中TBitmap32.TextOut性能分析[转载]

    转载:http://blog.csdn.net/avan_lau/article/details/6958497 最近在分析软件中画线效率问题,发现在画一些标志性符号的方法,存在瓶颈,占用较大的时间. ...

  9. 转: Annovar 软件注释流程介绍

    第一步:下载Annovar 上Annovar官网下载(http://annovar.openbioinformatics.org/en/latest/user-guide/download/),现在要 ...

  10. @ModelAttribute运用详解

      @ModelAttribute使用详解 1.@ModelAttribute注释方法     例子(1),(2),(3)类似,被@ModelAttribute注释的方法会在此controller每个 ...