UIViewController的详细介绍

UIViewController概念

  • 视图控制器是应用程序数据和视图之间的重要桥梁,每个iOS应用程序只显示一个用户界面,显示的内容是由控制器或一组视图控制器协调管理。所以,视图控制器提供了一个基本的框架来构建应用程序。

  • UIViewController是所有视图控制器的父类

  • iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器
    (UINavigationController),标签栏控制器(UITabBarController),表视图控制器(UITableViewController)等

这里写图片描述

视图控制器与视图的关系

  • 视图控制器是传统的Model-View-Controller(MVC)设计模式中 —— 控制器对象

  • 视图控制器提供了许多控制器的基本功能,因为它是所有控制器的基类

  • 视图控制器负责创建和管理一组视图,它本身就提供了一个视图,称为该控制器的根视图(view),协调管理数据和视图之间的交互

Screens, Windows、 Views创建可视化界面

这的里写图片描述

Screens, Windows、 Views的层次关系

  • UIScreen对象是连接物理屏幕的标示
  • UIWindow为UIScreen对象提供了一个画布
  • 一组UIView对象就可以显示内容,当window对象相应他们的请求的时候,就开始画显示的内容

这里写图片描述

UIViewController的创建

  • UIViewController的创建有两种方式,一种是使用xib的方式来创建

RootViewController是新建的一个类,新建RootViewController.xib
选中RootViewController.xib–>Custom Class(改成RootViewController)

  • 另外一种是使用代码来创建视图
    //创建每个控制器的根视图
    UIView *rootView =[[UIView   alloc]initWithFrame:[UIScreen   mainScreen].applicationFrame];
    self.view = rootView;
    self.view.backgroundColor = [UIColor  redColor];

UIViewController生命周期

这里写图片描述

视图的加载过程

  • 首先去访问view属性
  • 如果存在view,则直接加载。相反,如果不存在,则UIViewController调用loadView方法

    loadView方法执行如下操作

  • 如果你覆盖了该方法,则必须创建view给UIViewController的view属性 如果你没有覆盖该方法,UIViewController会调用父类的方法,通过viewDidLoad方法来执行一些其他任务

UIViewController加载视图方法的执行顺序

1、加载nib时会调用
-   (id)initWithNibName:(NSString   *)nibNameOrNil   bundle:(NSBundle   *)nibBundleOrNil

2、没有正在使用nib视图页面,子类将会创建自己的自定义视图层 
-(void)loadView

3、视图被加载后调用 
-(void)viewDidLoad

4、视图即将出现的时候调用 
-(void)viewWillAppear:(BOOL)animated

5、视图出现后的时候调用 
-(void)viewDidAppear:(BOOL)animated

6、视图即将消失的时候调用 
-(void)viewWillDisappear:(BOOL)animated

7、视图消失后的时候调用
-(void)viewDidDisappear:(BOOL)animated

视图的添加过程

这里写图片描述

视图的移除过程

这里写图片描述

视图的卸载过程

这里写图片描述

视图控制器的视图内存管理

这里写图片描述

视图控制器的事件传递流程

当前触发的事件——>当视图控制器的根视图——>视图控制器——>窗口——

UIApplication对象——>不处理(忽略)

模态视图

  • 模态视图不是专门的某个类,而是通过视图控制器的presentModalViewController:方法弹出的视图我们都称为模态视图
  • 模态视图出现的场景一般是临时弹出的窗口
  • 模态视图弹出时通过modalTransitionStyle属性设置不同的动画效果
  • 调用 dismissModalViewControllerAnimated: 方法关闭窗口
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值