视图控制器总结
视图控制器的基本概念
//真正开发中不会将所有控件写在窗口视图上
//而是写在视图控制器自带的视图上
//这样的代码便于维护和修改
//层次结构:屏幕-->窗口-->视图控制器(自带的UIView视图)-->任意类型的控件都可以添加到这个自带的视图上
//视图控制器UIViewController 相当于一个容器 看不到摸不着 窗口上显示的只是视图控制器自带的视图内容
//UIViewController 是所有视图控制器(系统提供的视图控制器、自定义的视图控制器)的父类
//窗口上同一时刻 只能显示一个视图控制器自带的视图内容
//[self.window addSubview:label];
视图控制器的生命周期
//如果子视图控制器对象创建成全局的 那么这个对象初始化就写在viewDidLoad方法中 这样就能确保这个子视图控制器对象 在当前类中是唯一的
//viewDidLoad方法只要视图控制器对象被创建 viewDidLoad方法就不会再次被调用
//只有视图控制器对象首次创建的时候调用一次
//视图将要显示出来的时候调用该方法
//在视图将要出现之前(将视图显示给用户之间)可以对视图上的控件的布局进行修改 也可以对视图上显示的数据进行修改
-(void)viewWillAppear:(BOOL)animated;
视图控制器生命周期方法的调用顺序【重点】
//initWithNibName ----> loadView ---->viewDidLoad -----> viewWillAppear -----> viewDidAppear -----> viewWillDisappear ---->viewDidDisappear
//addSubView 和 removeFromSuperView 结合使用
模态视图
// 模态视图 视图切换的一种方式
//新的视图控制器 会将原有的视图控制器从窗口上推出 将新的视图控制器上的视图显示在窗口上 然后原有的视图控制器在内存中等候
//如果想要将原有的视图控制器上的视图显示在窗口上 那么原有视图控制器就将新的视图控制器从窗口上推出 这样就能确保了窗口上时刻保持一个视图控制器
//而addSubView方法 进行视图切换
//同一时刻窗口上可能存在多个视图控制器 叠加存在
//界面切换的方法 presentViewController:
/*
1、将要跳转过去的视图控制器对象指针
2、是否具有动画效果 一般时候设置成YES 调用该方法自带的动画效果 自下向上推出
3、动画效果结束以后 是否进行其他操作 如果进行其他操作此处就是一个block语句块 否则此处设置值为nil
*/
[self presentViewController:next animated:YES completion:nil];