控制器View的生命周期

简介: 控制器View的生命周期

控制器View的生命周期


这个好像是个面试题吧

76da46b871d3412213ea0013e92d475f.png

Snip20170106_4.png

顺序是这样的:viewDidLoad(控制器的View加载完)—》viewWillAppera(控制器的View即将显示)—》viewVillLayoutSubViews(控制器的View将要摆放子控件)—》viewDidLayoutSubViews(控制器的View摆放子控件完成)—》viewDidApper(控制器的View显示完成)—》viewWillDisappear(控制器的View即将消失)—》viewDidDisapper(控制器的View已经消失)

#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
// 控制器的View加载完时候调用(我们一般在这添加子控件)
- (void)viewDidLoad {
    [super viewDidLoad];
}
//控制器的View将要显示时候调用
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}
// 将要布局控制器的View里面的子控件的时候调用
- (void)viewWillLayoutSubviews
{
    [super viewWillLayoutSubviews];
}
//布局控制器的View里面的子控件完成的时候调用
- (void)viewDidLayoutSubviews
{
    [super viewDidLayoutSubviews];
}
//控制器的View显示完成时候调用
- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}
//控制器的View将要消失时候调用
- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}
//控制器的View完全消失时候调用
- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}
@end

注意上面是ARC模式  MRC模式下还有几个方法哦

//在 ARC当中. 当前控制器的View即将被销毁的时候会调
-(void)viewWillUnload
{
    [super viewWillUnload];
}
//当前控制器的View被销毁的时候会调
-(void)viewDidUnload
{
    [super viewDidUnload];
}

其实也是按照ARC模式的,只是后面多了几步—>接到内存警告—>viewWillUnload—>释放View—>viewDidUnload

应用程序的启动原理

1:首先去到main文件加载main函数  执行UIApplicationMain函数 创建UIApplication对象,并设置代理
2:开启一个主运行循环(防止程序中途打断退出)
3:加载info.plist(判断这个字典中是否有Main storyboard file base name:main)在这个键值对,如果存在,那么就去加载Main.storyboard文件,加载箭头所转指的控制器
4.在加载控制器时候会先创建窗口,并把控制器的View放到窗口上面


相关文章
|
1月前
|
存储 前端开发
CreationExtras 来了,创建 ViewModel 的新方式
CreationExtras 来了,创建 ViewModel 的新方式
56 0
|
1月前
|
存储 Dart 数据库
Flutter笔记:状态提升、控制器模式、GetX控制器和服务
Flutter笔记:状态提升、控制器模式、GetX控制器和服务
171 0
|
6月前
|
XML 前端开发 Java
SpringMVC常见组件之View分析
SpringMVC常见组件之View分析
65 0
|
前端开发 PHP
Yii2框架(三)控制器及视图操作
首先,我们先将html页面的公共头尾抽成公共的文件。 Yii2.0框架是有公共布局选项这个设置的:advanced/backend/views/layouts/main.php这个文件就是公共模板文件,在我这里就是公共头尾。
191 0
Yii2框架(三)控制器及视图操作
|
Java Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
193 0
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(一)
|
Web App开发 JavaScript 前端开发
SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
SAP UI5 视图控制器 View Controller 的生命周期方法 - Lifecycle methods
|
Android开发
【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取要注入事件的 View 对象 | 通过反射获取 View 组件的事件设置方法 )
【IOC 控制反转】Android 事件依赖注入 ( 事件依赖注入具体的操作细节 | 获取要注入事件的 View 对象 | 通过反射获取 View 组件的事件设置方法 )
234 0
|
Android开发
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
【JetPack】为现有 Android 项目配置视图绑定 ( ViewBinding ) 模块 ( 视图绑定不影响传统布局操作 | 视图绑定类关联 Activity | 视图绑定类本质 )(二)
167 0
构建 View 时可能用到的代理函数调用顺序
  很多时候,要记住iPhone试图加载的life-cycle对应的代理函数是有点头疼的,特别是用Interface Builder构建界面的情况下。这给如何找到最佳的位置来添加自定义的视图绘画/初始化/配置成为了一个对于新手来说的难题。
640 0
|
容器 数据安全/隐私保护 JavaScript
View组件
一、使用方法 view组件是最常用的,也是最简单的视图容器。它是一个块级容器组件,它没有特殊的功能,主要用于布局展示,是布局中最基本的UI组件。几乎所有复杂的布局都可以通过嵌套view来实现。 view除了公共属性之外,还有以下几个私有属性 属性名 类型 默认值 说明hover-.
2977 0