UIViewController的生命周期实质上是指根视图view从无到有的过程

1.首先新建一个工程:不从mainstoryBoard加载

(删除入口)

在AppDelegate.m -->

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 方法中

创建窗口

在31行打上断点

(图一)

注意此时VC.view = nil;

2.跳到下一个断点处(在ViewController.m 的 viewDidLoad方法中)

(图二)

此时的self.view有值了

试图控制器的加载过程   就是说的view从无到有的过程

ViewController.m中

(图三)

图二 中 ViewController *VC = [[ViewController alloc]init];执行后会跳到图三(打上断点)  ---->然后跳回到 图二 中的31行

ViewController调用alloc init方法时会 自动调用到

- (instancetype)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil  方法中

重新运行到这里此时的view 还是nil                                                             |

|

还是在ViewController.m中 loadView被调用(注意:永远不要自己主动去调,系统自己调用) 调用条件:1.view 被访问  2.此时的view = nil  (如果AppDelegate中self.window.rootViewController被注释掉 就不会调用initWithNibName方法了)

执行过了29行view就会有值了                                                                   |

然后再执行viewDidLoad方法                                                                  \|/

UIViewController的生命周期(根视图view从无到有的过程)的更多相关文章

  1. iOS程序执行顺序和UIViewController 的生命周期(整理)

    说明:此文是自己的总结笔记,主要参考: iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 UIView的生命周期 言叶之庭.jpeg 一. iOS程序 ...

  2. UIViewController的生命周期及iOS程序执行顺序

    UIViewController的生命周期及iOS程序执行顺序     当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc                         ...

  3. iOS程序的执行顺序 和 UIViewController的生命周期

    iOS程序的执行顺序 1 进入程序的入口 进入main函数, 设置AppDelegate称为函数的代理 2  程序完成加载 -[AppDelegate application:didFinishLau ...

  4. iOS程序执行顺序 AppDelegate及 UIViewController 的生命周期

    iOS程序的启动执行顺序 AppDelegate 及 UIViewController 的生命周期 iOS应用程序的状态切换很重要,而UIViewControler对于iOS这种MVC模式来说尤为重要 ...

  5. iOS视图生命周期与视图控制器关系

    iOS中视图是一个应用的重要组成部分,功能的实现与其息息相关,而视图控制器控制着视图,其重要性在整个应用中不言而喻.   视图生命周期与视图控制器关系   以视图的5种状态为基础,我们来系统的了解一下 ...

  6. UIViewController的生命周期

    生命周期 我们建立一个简单的模型来测试生命周期:新建两个ViewController,一个是主视图控制器(main ViewController,以下简称mainVC),一个是副视图控制器(sub V ...

  7. IOS - UIViewController的生命周期

    1)Load周期 2)Unload周期 在UIViewController中,view(黑体的view指的是controller的view属性)有两个循环:加载和卸载循环.当程序的一部分向contro ...

  8. UIViewController的生命周期及iOS程序执行顺序 和ios6 处理内存警告

    当一个视图控制器被创建,并在屏幕上显示的时候. 代码的执行顺序1. alloc                                   创建对象,分配空间2.init (initWithN ...

  9. UIViewController的生命周期及iOS程序运行顺序

    当一个视图控制器被创建,并在屏幕上显示的时候. 代码的运行顺序 1. alloc                                   创建对象,分配空间 2.init (initWit ...

随机推荐

  1. css3 animation动画特效插件的巧用

    这一个是css3  animation动画特效在线演示的网站 https://daneden.github.io/animate.css/ 下载 animate.css文件,文件的代码很多,不过要明白 ...

  2. System.StackOverflowException的一个例子(转)

    今天按着书上的例子写呀写,写了一下午终于做出了一个三层模式的通讯录(当然很简单),但是,弄了最后却碰到个运行时的 异常,弄得我这个asp.net菜鸟郁闷了再郁闷.异常如下:发生类型为 System.S ...

  3. AFN中的PATCH 和 DELETE 请求方式

    - (nullable NSURLSessionDataTask *)PATCH:(NSString *)URLString parameters:(nullable id)parameters su ...

  4. 【总结】清除webbrowser cookie/session的6种方法

    下面是我测试下来的6种清除webbrowser中cookie的6种方法: //方法一:调用 wininet.dll清除cookie (推荐) SuppressWininetBehavior(); // ...

  5. 脚本录制(JMeter)

    使用JMeter录制脚本: 1.打开JMeter工具,创建一个线程组,接着创建一个http代理服务器,代理服务器设置如下:

  6. clr via c# 读书笔记

    WOW64 WOW64 (Windows 位应用程序提供了 位的模拟,可以使大多数 位应用程序在无需修改的情况下运行在 Windows 位版本上. com对象 COM:The Component Ob ...

  7. vmware安装linux6.3

    安装信息: 1.vmware9.0下载地址:http://pan.baidu.com/share/link?shareid=1287299796&uk=2585121485 2.oraclel ...

  8. String,StringBuffer

    String类代表不可变的字符序列. String s1 = "hello"; String s2 = "hello"; s1 == s2  ==> tr ...

  9. 实战录 | 一起唠唠那些常见的DDoS攻击

    <实战录>导语 云端卫士<实战录>栏目定期会向粉丝朋友们分享一些在开发运维中的经验和技巧,希望对于关注我们的朋友有所裨益.本期分享人为云端卫士系统架构师高鹏,将带来常见的DDo ...

  10. Sql Server 常用操作

    --DDL触发器CREATE   TRIGGER [TR_create_drop_alter_Table] ON DATABASE FOR CREATE_TABLE,DROP_table,ALTER_ ...