[转]ViewController的生命周期

loadView 创建view,构建界面;
viewDidLoad 做些初始化工作。由于在初次创建viewcontroller和重新恢复时都会调用,因此这个函数需要注意区分不同的情况,设置正确的状态。
didReceiveMemoryWarning 释放不必须的内存,比如缓存,未显示的view等。
viewDidUnLoad 最大程度的释放可以释放的内存。比如应该释放view,这些view在调用loadview后可以重新生成。(其中成员变量释放后应设置为nil)。对于非界面的数据是否释放,需要具体分析,可以恢复的数据可以释放,不能恢复的数据就不要释放。

ViewController的生命周期中各方法执行流程如下: init—>loadView—>viewDidLoad—>viewWillApper—>viewDidApper—>viewWillDisapper—>viewDidDisapper—>viewWillUnload->viewDidUnload—>dealloc
跟随如下文字理解viewController对view加载过程:

1 先判断子类是否重写了loadView,如果有直接调用。之后调viewDidLoad完成View的加载。

2 如果是外部通过调用initWithNibName:bundle指定nib文件名的话,ViewController记载此nib来创建View。

3 如果initWithNibName:bundle的name参数为nil,则ViewController会通过以下两个步骤找到与其关联的nib。

A 如果类名包含Controller,例如ViewController的类名是MyViewController,则查找是否存在MyView.nib;

B 找跟ViewController类名一样的文件,例如MyViewController,则查找是否存在MyViewController.nib。

4 如果子类没有重写的loadView,则ViewController会从StroyBoards中找或者调用其默认的loadView,默认的loadView返回一个空白的UIView对象。

注意第一步,ViewController是判断子类是否重写了loadView,而不是判断调用子类的loadView之后ViewController的View是否为空。就是说,如果子类重写了loadView的话,不管子类在loadView里面能否获取到View,ViewController都会直接调viewDidLoad完成View的加载

时间: 2024-12-28 10:02:56

[转]ViewController的生命周期的相关文章

iOS view和viewController的生命周期

转自:http://blog.sina.com.cn/s/blog_801997310101a39w.html 一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并在不需要的时候卸载视图,所以也同时担当了管理应用资源的责任 二.ViewController的生命周期 View是指Controller的View.它作为Controler的属性,生命周期

ViewController的生命周期分析和使用

ViewController的生命周期分析和使用 一.结构 按结构可以对iOS的所有ViewController分成两类: 1.主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController. 2.用于控制和显示其他ViewController的ViewController.这种ViewController一般都是一个ViewController的容器.如UINa

viewdidload的调用和viewcontroller的生命周期

1.通常理解为在页面加载之前调用viewDidload,这是不准确的 2.它真正的调用时间是在‘ 第一次’用getter取self.view的时候就去判断是否有值了 3.如果没有会去loadview并且去创建一个对象并设置给self.veiw这时候就会执行了viewDidload, 4.所以有时看似逻辑正确的程序可能会出错或者说一些动作会因为不调用viewDidload而不执行 5.所以在页面跳转之前的函数的前面要注意是否调用getter   简单说就是给self.view赋值 如果有就可能马上

View和viewController的生命周期

一.ViewController的职责 对内管理与之关联的View,对外跟其他ViewController通信和协调.对于与之关联的View,ViewController总是在需要的时候才加载视图,并在不需要的时候卸载视图,所以也同时担当了管理应用资源的责任 二.ViewController的生命周期 View是指Controller的View.它作为Controler的属性,生命周期在Controller的生命周期内.就是说你的Controller不能在view释放前就释放了. viewCon

0517.View、ViewController的生命周期及相关函数的用途[UIKit]

准备知识(来自网易博友:烟花细雨): 1.按照结构可以把ViewController分为2类: 1)主要是用于显示内容的ViewController,这种ViewController主要是用于为用户展示内容,并且与用户交互,比如UITableViewCOntroller,UIVewController 2)永固控制和显示其他ViewController的ViewController,这种ViewController一般都是一个ViewCOntroller的容器.比如UINavigationCon

viewController的生命周期

ViewController是iOS开发中MVC模式中的C,ViewController是view的controller,ViewController的职责主要包括管理内部各个view的加载显示和卸载,同时负责与其他ViewController的通信和协调.在IOS中,有两类ViewController,一类是显示内容的,比如UIViewController.UITableViewController等,同时还可以自定义继承自UIViewController的ViewController:另一类

iOS开发-ViewController的生命周期和切换

ViewController在App开发中是至关重要的一环,无论是页面的展示和数据之间的交互,ViewController提供了一个框架可以管理和构建App应用.iOS中构建App提供了两种方式一种是ViewController管理比如NavigationController和UITabBarController,另外一种就是我们经常打交道用到的自定义ViewController或者是常用UITableViewController展示我们需要的数据.下面这种苹果官网的图片可以加强理解: 生命周期

母传键老师课堂笔记 -----ViewController的生命周期

//1.手势,viewcontroller 进入下一页 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { MCJViewController *mcjVC = [[MCJViewController alloc] init]; [self presentViewController:mcjVC animated:YES completion:nil]; } // 生命周期内容 // 1. - (instancet

[zhang] ViewController的生命周期分析和使用

iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验. 一.结构 按结构可以对iOS的所有ViewController分成两类:1.主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UITableViewController,UIViewController.2.用于控制和显示其他ViewController的ViewController.这种ViewController一般都