iOS 控制器View的生命周期及相关函数
来源:互联网 发布:淘宝流量和访客的区别 编辑:程序博客网 时间:2024/04/30 02:35
转载:http://www.bubuko.com/infodetail-637615.html
1.loadView
1.1 如果重写了控制器的loadView方法,则控制器的View按照loadView方法的描述去创建
- (void)loadView
{
self.view = [[UIView alloc]init];
self.view.backgroundColor = [UIColor redColor];
}
1.2 如果没重写控制器的loadView方法,则看有没有storyboard的,有的话,则按storyboard的描述创建view
加载storyboard的方法:
1>在project--targets--MainInterface指定storyboard
2>代码加载
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"myStoryboard" bundle:nil];
self.window.rootViewController = [myStoryboard instantiateInitialViewController];
[self.window makeKeyAndVisible];
return YES;
}
1.3 如果没有storyboard,则看初始化控制器的时候,有没有指定nibName,指定了的话,就按nibName对应的xib创建view
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.window.backgroundColor = [UIColor whiteColor];
self.window.rootViewController = [[QKViewController alloc]initWithNibName:@"myViewController" bundle:nil];
[self.window makeKeyAndVisible];
return YES;
}
1.4 如果没有指定nibName,假设控制器名字是QKViewController,则程序优先寻找名字为QKView.xib,找到了的话,则按QKView.xib创建view
1.5 如果没有找到QKView.xib,则寻找QKViewController.xib,找到了的话,则按QKViewController.xib创建view
前面5步的流程图:
2.前面5步实际都是在做loadView,做完这一步之后,就调用viewDidLoad,只会被调用一次
3.在视图显示之前调用viewWillAppear,该函数可以被多次调用
4.视图显示完毕,调用viewDidAppear
5.在视图消失之前,调用viewWillDisApperar,该函数可以被多次调用
6.在布局变化前后,调用viewWillLayoutSubviews\viewDidLayoutSubviews
7.控制器还有三个方法需要注意:viewWillUnload\viewDidUnload\didReceiveMemoryWarning
当程序内存不够用时,最先拿到内存警告的是UIApplication→Window→Window.rootViewController→.....(一层一层往下传).
控制器收到内存警告时,如果要确定要销毁View,则会调用viewWillUnload\viewDidUnload.
控制器是这样判断View是否需要销毁的:
8.当控制器的View被销毁之后,如果又需要显示,则控制器会调用loadView,又从第一步的loadView开始走一遍
总结:控制器的生命周期实际是一个闭合的环
- iOS 控制器View的生命周期及相关函数
- iOS 控制器View的生命周期及相关函数
- 控制器View的生命周期及相关函数使用
- 控制器View的生命周期及相关函数是什么?你在开发中是如何用的?
- iOS 控制器View的生命周期
- View、ViewController的生命周期及相关函数的用途[UIKit]
- 控制器View的生命周期
- 控制器view的生命周期
- iOS中视图控制器View的加载与生命周期
- (iOS)控制器的生命周期
- ios控制器的生命周期
- iOS 控制器的生命周期
- 控制器View的生命周期图解
- 控制器view的生命周期方法
- 加载控制器View的方式以及控制器View的生命周期
- iOS 视图控制器的生命周期
- IOS视图控制器的生命周期
- ios关于控制器的生命周期
- iOS 用NSAttributedString处理文字大小不一致情况
- redis conf配置文件详解
- 【Hours】使用indexedDB中遇到的问题。
- 初步体验libsvm用法3(matlab实例)
- 关于垂直切分Vertical Sharding的粒度
- iOS 控制器View的生命周期及相关函数
- 43,指针函数具有良好的扩展性
- 解决Cannot change version of project facet Dynamic web module to 3.0
- pyqt py文件中引用多个界面
- 分布式哈希表(DHT,Distributed Hash Table
- 算法的定义
- 数据库分库分表(sharding)系列(二) 全局主键生成策略
- Java并发编程系列之三:重排序与顺序一致性
- 什么是web框架