IOS UIViewController API,生命周期详解
在UIKit框架中只有一个根制图控制器。视图控制器用来管理界面和处理界面的类对象,程序启动前必须创建根视图控制器。所有视图控制器都需要自定义完成,必须继承于UIViewController 实现。xcode新创建的项目默认是通过info.plist 文件配置 main.storyboard 文件自动创建根视图ViewController。继承于UIView
创建根视图控制器
#import "AppDeletegate.h"
...code
- (void) didFinishLuanchingWithOptions:(NSDictionary *)luanchOptions {// 设置屏幕宽高self.window = [[UIWindow alloc] initWithFrame: [UIScreen mainScreen]];// 设置视图控制器为window根节点self.window.rootViewController = [[UIViewController alloc] init];
}
...code
自定义ViewController
#import "ViewController.h"
@implementation ViewController
// 当视图控制器第一次被加载显示视图
- (void) viewDidLoad{[super viewDidLoad];//创建子视图UIView *view = [[UIView alloc] init];view.frame = CGReactMake(0, 0, 300, 45);view.backgroundColor = [UIColor greenColor];// 加入视图[self.view addSubView:view];
}
@end
添加子视图控制器
#import "ViewController.h"
@implementation ViewController
// 当视图控制器第一次被加载显示视图
- (void) viewDidLoad{[super viewDidLoad];self.view.backgroundColor = [UIColor blueColor];
}
// 当屏幕被点击时候触发
-(void)touchesBegan:(NNSet<UITouch *> *)touches withEvent:(UIEvent *)event{UIViewController *sonViewController = [[UIViewController alloc] init];[self presentViewController: sonViewController animate:YES complation:nil];
}
@end
API
(void)touchesBegan:(NNSet<UITouch *> *)touches withEvent:(UIEvent *)event
当屏幕被点击时候触发。(void)presentViewController:(UIViewController *) animate:(BOOL) completion:(callbacl)
显示一个视图控制器到屏幕上,参数1:UIViewController 新的视图控制器对象,参数2:animate 是否开启动画效果,参数3:completion: 执行完成后的回调函数,不需要传nil即可。(void)dismissViewControllerAniamted:(BOOL) completion:(callback)
使当前视图控制器在屏幕消失,参数1:animte 是否开启动画效果,参数2:completion 执行完成后的回调函数,不需要传nil即可。(void)removeFromSuperView
将当前视图实例从父级删除(void)bringSubViewToFront: UIView*
将一个子视图调整到最顶级绘制(void)sendSubViewToBack: UIView*
将一个子视图调整到最低层绘制
生命钩子
(void)viewDidLoad
加载内存时候触发, 通常用于初始化子节点布局和资源使用(void)viewWillAppear:(BOOL)animated
即将显示时候触发(void)viewDIdLayoutSubviews
布局子组件完成时候触发(void)viewWillLayoutSubviews
当渲染时候布局子组件触发(void)viewDidAppear:(BOOL)animated
已经显示时触发(void)viewWillDisappear:(BOOL)animated
即将消失时候触发(void)viewDidDisappear:(BOOL)animated
消失时候触发(viod) didReceiveMemoryWarning
当内存不足时候触发
IOS UIViewController API,生命周期详解相关推荐
- Fragment生命周期详解
关于Fragment的生命周期,博主写过Activity与Fragment生命周期详解,基本上把Fragment的生命周期详细介绍过,但是那仅仅是创建一个Fragmnet时的生命周期,而事实上Frag ...
- Android面试之Activity生命周期详解
Activity生命周期详解 一 Activity的四种状态: Activity的生命周期中存在四种基本的状态:活动状态(Active/Runing),暂停状态(Paused),停止状态(Stoppe ...
- Fragment的懒加载与生命周期详解
提示:本文仅为笔者学习记录 Fragment的懒加载与生命周期详解 什么是懒加载 了解Fragment的生命周期 onAttach onCreate onCreateView onActivityCr ...
- vue 声明周期函数_Vue 生命周期详解
Vue 生命周期详解 Vue 生命周期流程 最开始,用户使用 new Vue() 创建根 Vue 实例,或者 Vue 实例化子组件都会调用_init方法(我们将这两种实例都称为vm): functio ...
- 01.软件项目管理与敏捷方法——敏捷项目生命周期详解笔记
01.软件项目管理与敏捷方法--敏捷项目生命周期详解笔记 00.与其说是船还不如说是熟练的航行技术保证了成功的航行.--George William Curtis 01.敏捷项目是一个按照敏捷宣言宗旨 ...
- taro生命周期详解
taro生命周期详解 taro介绍 生命周期 react的钩子函数 为兼容小程序的钩子函数 个别生命周期详解以及注意 1.render()函数 2.constructor()构造函数 3.在各个生命周 ...
- Eclipse中Maven常用命令以及Maven生命周期详解
Eclipse中maven常用的命令 在某一个maven项目右键快捷方式,然后点击Run As就可以发现几个Maven的命令: Maven Build: 这个命令用于编译Maven工程,执行命令后会在 ...
- Spring 生命周期详解
Spring 生命周期详解 一.传统JAVA bean的生命周期 使用Java关键字 new 进行Bean 的实例化,然后该Bean 就能够使用了. 一旦bean不再被使用,则由Java自动进行垃圾回 ...
- flutter 生命周期详解
flutter 生命周期详解 简介 一.widget 生命周期 二.APP 生命周期 总结 简介 众所周知,程序是有生命周期的,那么flutter 的生命周期是什么呢? flutter 的生命周期大体 ...
最新文章
- 首个全球智慧城市在线社区启动 将锁定对城市发展构成挑战的困难
- SharePoint 2013 配置HTTPS(SSL)
- java properties 路径问题_Java 读取Properties文件时应注意的路径问题
- 【原】UCS-2和UTF-8的互相转换
- 慎用window.showModalDialog()
- android web3j 代币查询_Android通过web3j以太坊智能合约交互
- Android开发(一):android环境搭建
- java队列优先级_优先级队列-Java的PriorityQueue与最小堆有何不同?
- C++Builder编程中动态更改自定义打印纸张
- dj鲜生-通过邮箱发送加密的激活链接
- 如何更流畅地使用 Google 搜索?
- 网络空间安全复习归纳
- JDK11下载和安装(macos)
- matlab sae模型,发动机平均值模型的三篇SAE论文
- 华为路由器基本使用命令
- 计算机组成原理推荐书籍
- 第八周编程题在线测试
- 教师空间HTML没有怎么查找,人人通空间为什么看不到老师发的作业?
- Linux环境下安装Oracle 11g R2完整图文教程
- 地图兴趣点搜索三(ES相关性得分参数调整)
热门文章
- 搜狗输入法为什么按空格出字 搜狗输入法按空格出字怎么设置
- idea 快捷键代码行标记并快捷跳到标记行
- SpringBoot整合oss实现文件的上传,查看,删除,下载
- spring中context:property-placeholder标签详解
- socket和http区别有哪些
- Java分布式篇6——RabbitMQ
- Vue 计算属性 computed
- 5乘7的c语言程序,C语言程序设计实验5-7教案(20页)-原创力文档
- java 压缩jar 仓库,java服务安装(一):使用java service wrapper及maven打zip包
- 形容人的内核是什么意思_识人核心是什么?