·视图控制器就像个大管家,用来管理视图的加载、卸载、横屏竖屏显示等操作。
·每一个界面都应该由一个控制器来管理显示
·UIViewController是所有视图控制器的父类
·iOS提供了许多内置的视图控制器类,以支持标准的用户界面部分,比如导航控制器
(UINavigationController),标签栏控制器(UITabBarController),表视图控制器
(UITableViewController)等
视图控制器与视图的关系
·视图控制器是传统的Model-View-Controller(MVC)设计模式中 —— 控制器
·视图控制器提供了许多控制器的基本功能,因为它是所有控制器的基类
·视图控制器负责创建和管理一组视图,它本身就提供了一个视图,称为该控制器的根
视图(view),协调管理数据和视图之间的交互
Screens, Windows, and Views创建可视化界面
·下图显示了一个简单的界面
·显示了他们之间的关系
视图控制器管理视图
·每个视图控制器管理和控制一系列的视图
·你永远不会直接把UIView添加到UIWindow上面,而是添加一个UIViewController。
UIViewController的创建
1.代码方式
2.使用xib创建
- (instancetype)initWithNibName:(NSString *)nibName
bundle:(NSBundle *)nibBundle
或者使用storyboard创建
- (id)instantiateViewControllerWithIdentifier:(NSString *)identifier
视图的加载
设置支持方向旋转
通过覆写如下方法设置方向,也可在IDE中设置
- (NSUInteger)supportedInterfaceOrientations
{
return (UIInterfaceOrientationMaskPortrait|
UIInterfaceOrientationMaskLandscapeLeft);
}
模态视图
·通过视图控制器的- presentViewController:animated:completion:方法弹出的视图我们都称为模态视图
·模态视图出现的场景一般是临时弹出的窗口,譬如:登陆窗口
·模态视图弹出时通过modalTransitionStyle属性设置不同的动画效果
·调用- dismissViewControllerAnimated:completion:方法关闭窗口
视图出现add
视图消失remove
UIViewController生命周期