美文网首页
生命周期

生命周期

作者: nuclear | 来源:发表于2016-02-26 12:56 被阅读201次

ViewController的生命周期

一、代码

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

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{
    self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
    if (self) {
        NSLog(@"initWithNibName");
    }
    return self;
}

- (void)loadView{  [super loadView];  NSLog(@"loadView");}

- (void)viewDidLoad { [super viewDidLoad];   NSLog(@"viewDidLoad");}

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

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

- (void)viewWillDisappear:(BOOL)animated{ NSLog(@"viewWillDisappear"); }

- (void)viewDidDisappear:(BOOL)animated{ NSLog(@"viewDidDisappear"); }

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

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

二、打印输出

视图出现时
2016-02-26 12:53:20.546 SouFun[5193:645902] initWithNibName
2016-02-26 12:53:20.547 SouFun[5193:645902] awakeFromNib
2016-02-26 12:53:20.547 SouFun[5193:645902] loadView
2016-02-26 12:53:20.548 SouFun[5193:645902] viewDidLoad
2016-02-26 12:53:20.548 SouFun[5193:645902] viewWillAppear
2016-02-26 12:53:20.552 SouFun[5193:645902] viewWillLayoutSubviews
2016-02-26 12:53:20.552 SouFun[5193:645902] viewDidLayoutSubviews
2016-02-26 12:53:21.071 SouFun[5193:645902] viewDidAppear
视图消失时
2016-02-26 12:50:22.935 SouFun[5057:400075] viewWillDisappear
2016-02-26 12:50:22.949 SouFun[5057:400075] viewDidDisappear

三、总结

视图出现时

initWithNibName(initWithCoder)
awakeFromNib
loadView
viewDidLoad
viewWillAppear
viewWillLayoutSubviews
viewDidLayoutSubviews
viewDidAppear

视图消失时

viewWillDisappear
viewDidDisappear

APP启动顺序
//告诉代理进程启动但还没进入状态保存
- (BOOL)application:(UIApplication *)application willFinishLaunchingWithOptions:(NSDictionary *)launchOptions

//告诉代理启动基本完成程序准备开始运行
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

//当程序载入后执行
- (void)applicationDidFinishLaunching:(UIApplication*)application

//当应用程序将要入非活动状态执行,在此期间,应用程序不接收消息或事件,比如来电话了
- (void)applicationWillResignActive:(UIApplication *)application


//当应用程序入活动状态执行,这个刚好跟上面那个方法相反
- (void)applicationDidBecomeActive:(UIApplication *)application

//当程序从后台将要重新回到前台时候调用,这个刚好跟上面的那个方法相反。
- (void)applicationWillEnterForeground:(UIApplication *)application

//当程序被推送到后台的时候调用。所以要设置后台继续运行,则在这个函数里面设置即可
- (void)applicationDidEnterBackground:(UIApplication *)application

//当程序将要退出是被调用,通常是用来保存数据和一些退出前的清理工作。这个需要要设置UIApplicationExitsOnSuspend的键值。
- (void)applicationWillTerminate:(UIApplication *)application

补充:

  • 从A控制器push到B控制器:

2016-04-20 16:29:56.019 iOS7Sampler[5940:2338171] B initWithNibName
2016-04-20 16:29:56.078 iOS7Sampler[5940:2338171] A viewWillDisappear
2016-04-20 16:29:56.078 iOS7Sampler[5940:2338171] B awakeFromNib
2016-04-20 16:29:56.078 iOS7Sampler[5940:2338171] B loadView
2016-04-20 16:29:56.078 iOS7Sampler[5940:2338171] B viewDidLoad
2016-04-20 16:29:56.103 iOS7Sampler[5940:2338171] B viewWillAppear

2016-04-20 16:29:56.129 iOS7Sampler[5940:2338171] B viewWillLayoutSubviews
2016-04-20 16:29:56.129 iOS7Sampler[5940:2338171] B viewDidLayoutSubviews
2016-04-20 16:29:56.129 iOS7Sampler[5940:2338171] A viewWillLayoutSubviews
2016-04-20 16:29:56.130 iOS7Sampler[5940:2338171] A viewDidLayoutSubviews
2016-04-20 16:29:56.633 iOS7Sampler[5940:2338171] A viewDidDisappear
2016-04-20 16:29:56.633 iOS7Sampler[5940:2338171] B viewDidAppear

  • 从B控制器pop回A控制器:

2016-04-20 16:36:57.317 iOS7Sampler[5940:2338171] B viewWillDisappear
2016-04-20 16:36:57.317 iOS7Sampler[5940:2338171] A viewWillAppear
2016-04-20 16:36:57.318 iOS7Sampler[5940:2338171] A viewWillLayoutSubviews
2016-04-20 16:36:57.319 iOS7Sampler[5940:2338171] A viewDidLayoutSubviews
2016-04-20 16:36:57.835 iOS7Sampler[5940:2338171] B viewDidDisappear
2016-04-20 16:36:57.835 iOS7Sampler[5940:2338171] A viewDidAppear
2016-04-20 16:36:57.836 iOS7Sampler[5940:2338171] A viewWillLayoutSubviews
2016-04-20 16:36:57.836 iOS7Sampler[5940:2338171] A viewDidLayoutSubviews

相关文章

  • Vue生命周期

    什么是生命周期方法?生命周期钩子=生命周期函数=生命周期事件 Vue生命周期方法分类  创建期间的生命周期方法: ...

  • Activity,Fragment,Service生命周期图

    Activity生命周期 Fragment生命周期 Service生命周期

  • 10,vue生命周期

    生命周期钩子=生命周期函数=生命周期事件 根据生命周期的不同分为三类: 创建阶段的生命周期 运行阶段的生命周期 销...

  • 微信小程序生命周期的记录

    小程序中生命周期分为3类: 应⽤的生命周期 页面的生命周期 组件的生命周期 一、生命周期 1. 应⽤的生命周期[h...

  • Lifecycle 生命周期源码解析

    目录: 什么生命周期 什么是生命周期感知型组件 Activity是如何把生命周期传给生命周期感知组件的 生命周期 ...

  • Vue生命周期

    Vue生命周期详解 一、Vue生命周期 与 作用 (生命周期钩子就是生命周期函数) (1)Vue生命周期:每个Vu...

  • uni-app微信小程序开发 - 生命周期

    uni-app的生命周期分为应用生命周期和页面生命周期还有组件生命周期。 应用生命周期[https://uniap...

  • 【小程序】生命周期

    小程序生命周期分为两类:应用生命周期和页面生命周期。 应用生命周期 应用生命周期包括onLaunch、onShow...

  • Java基础知识整理3——Android篇

    一、activity生命周期,fragment生命周期,broadcastReceiver生命周期,service...

  • Fragment的生命周期

    Fragment生命周期 宿主MainActivity生命周期 Fragmengs生命周期: activity_f...

网友评论

      本文标题:生命周期

      本文链接:https://www.haomeiwen.com/subject/gpcwkttx.html