1. 什么是视图控制器(View Controller)
简单来说,视图控制器用来管理你所有的视图。
他们是你的视图和模型的粘合剂。
如果你做过MVC的Web项目,我想你应该不会对它感到陌生。
2. 视图控制器的声明周期
| Method | Description |
| loadView | 创建并返回一个视图控制器的视图 |
| viewDidLoad | 视图已经完成加载 |
| viewWillAppear | 视图将要呈现(有或者没有动画) |
| viewDidAppear | 视图完成呈现(有或者没有动画) |
| viewWillDisappear | 视图将要消失(有或者没有动画) |
| viewDidDisappear | 视图已经消失(有或者没有动画) |
| viewWillLayoutSubviews | 视图将要布局它的子视图 |
| viewDidLayoutSubviews | 视图已经完成它的子视图的布局 |
| didReceiveMemoryWarning | 视图收到内存即将耗尽的警告 |
3. 生命周期流程

4. 一些系统的视图控制器
| UIViewController subclass | Description |
| UINavigationController | 管理和导向类似树状层级的视图控制器 |
| UITabBarController | 以tab bar形式管理和呈现视图控制器 |
| UITableViewController | 以表格形式管理和呈现视图控制器 |
| UICollectionViewController | 以集合形式管理和呈现视图控制器 |
5. 自定义设备方向
// support just portrait -(NSUInteger) supportedInterfaceOrientations { return UIInterfaceOrientationPortrait; } // support both portrait and landscape orientations(include upsidedown) -(NSUInteger) supportedInterfaceOrientations { return UIInterfaceOrientationMaskAll; } // support both portrait and landscape orientations - (NSUInteger) supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscape; }