iSO控制器的生命周期

原创 2016年05月31日 11:19:27

一个App有他的生命周期,同样App中的每个控制器也有他的生命周期,所谓控制器的生命周期,就是几个函数的调用顺序。这里,我们以storyboard创建控制器为例,说明说明一下控制器的生命周期。

initWithCoder

- (id)initWithCoder:(NSCoder *)aDecoder{
    if (self = [super initWithCoder:aDecoder]) {
        NSLog(@initWithCoder Called);
    }
    return self;
}

viewDidLoad

- (void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@viewDidLoad Called);
    // Do any additional setup after loading the view, typically from a nib.    
}

viewWillAppear

- (void)viewWillAppear:(BOOL)animated{
    [super viewWillAppear:animated];
    NSLog(@viewWillAppear Called);
}

viewDidAppear

-(void)viewDidAppear:(BOOL)animated{
    [super viewDidAppear:animated];
    NSLog(@viewDidAppear Called);
}

awakeFromNib

-(void)awakeFromNib{
    NSLog(@awakeFromNib Called);
}

viewWillLayoutSubviews

-(void)viewWillLayoutSubviews{
    NSLog(@viewWillLayoutSubviews Called);
}

viewDidLayoutSubviews

-(void)viewDidLayoutSubviews{
    NSLog(@viewDidLayoutSubviews Called);
}

然后在模拟器上运行,运行结果如下:

initWithCoder Called
awakeFromNib Called
viewDidLoad Called
viewWillAppear Called
viewWillLayoutSubviews Called
viewDidLayoutSubviews Called
viewDidAppear Called

所以,调用顺序为

  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已经消失

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

导航控制器(NavigationController)的生命周期

iOS NavigationControllers 的生命周期
  • xcoder_ping
  • xcoder_ping
  • 2016年05月25日 10:59
  • 994

iOS开发学习之导航控制器和应用程序的生命周期

利用导航控制器UINavigationController可以实现多个控制器的切换 典型的例子就是iPhone上"设置”应用 下面虾米写一个小demo代码来实现的多控制器的切换。 使用UINavi...
  • ios_cjh
  • ios_cjh
  • 2016年03月04日 22:43
  • 455

iOS开发UIViewCOntroller视图控制器之间跳转切换举例,以及视图控制器生命周期的简单说明

转载自:http://blog.csdn.net/weisubao/article/details/39620795 (1)视图控制图可以理解成有两部分,有一个部分是控制的,还有一部分是视图...
  • yuxikuo_1
  • yuxikuo_1
  • 2014年12月24日 23:48
  • 3602

控制器的生命周期

当一个视图控制器被创建,并在屏幕上显示的时候。 代码的执行顺序 1、 alloc                                   创建对象,分配空间 2、init (initWit...
  • ZHZMAREN
  • ZHZMAREN
  • 2016年03月11日 11:24
  • 95

控制器生命周期

控制器生命周期
  • Alpaca12
  • Alpaca12
  • 2016年07月13日 21:23
  • 177

控制器的生命周期

http://www.cnblogs.com/coco-bao9107/p/4246601.html 控制器的生命周期就是一些列的方法控制很多关于视图控制器如何随时间变化的操作;当事件发生时...
  • u010828718
  • u010828718
  • 2015年03月06日 11:53
  • 446

控制器的生命周期

#import "MJOneViewController.h" @interface MJOneViewController () @property (nonatomic, stron...
  • tubiebutu
  • tubiebutu
  • 2015年03月31日 20:19
  • 337

IOS开发笔记36-多控制器管理(1)

1、 控制器的创建方式 视图控制器就是用来控制或者说管理界面(视图)的,换句话说界面长得丑与美由视图控制器说的算。每个视图控制器(UIViewController)都有一个View属...
  • Su_tianbiao
  • Su_tianbiao
  • 2015年10月31日 16:20
  • 793

控制器生命周期

启动应用程序   第一个控制器 2016-05-03 16:59:53.239 04.导航控制器(Storyboard)[14432:2607647] one view加载完成 2016-05-0...
  • liyunxiangrxm
  • liyunxiangrxm
  • 2016年05月04日 10:10
  • 259

控制器的生命周期

控制器的生命周期就是一些列的方法控制很多关于视图控制器如何随时间变化的操作;当事件发生时,会被发送至UIViewController,你的控制器是UIViewController的子类,如果你想知道事...
  • qq_28884869
  • qq_28884869
  • 2015年10月29日 13:24
  • 205
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:iSO控制器的生命周期
举报原因:
原因补充:

(最多只允许输入30个字)