目标
常见的视图控制器
视图控制器的功能
iOS中的MVC
创建一个多视图应用程序
1、常见的视图控制器
UIViewController
视图控制器的父类
每个视图控制器都有一个主视图
UINavigationController
树状层次结构上下导航
页面顶部,高度44的一个横条
UITabBarController
带有一个标签栏
可以管理多个视图控制器
UITabelViewController
简化了表格的使用
UIImagePickerController
从内置相册中选择图片,图片选择器
可以在相册层次中导航
2、视图控制器的功能
功能
管理视图的显示,对事件做出响应
充当用户界面和应用程序数据模型之间的协调者
显示
loadView 开始加载视图
viewDidLoad 视图加载结束
viewWillAppear 视图即将显示
viewDidAppear 视图已经显示
viewWillDisappear视图将要消失
viewDidDisappear 视图已经消失
响应方向变化
shouldAutorotateToInterfaceOrientation是否支持旋转
willRotateToInterfaceOrientation:duration:旋转前干什么
willAnimateRotationToInterfaceOrientation:duration
didRotateFromInterfaceOrientation: 旋转后干什么
处理低内存情况
内存不足的时候需要处理系统通知
didReceiveMemoryWarning
3、iOS中的MVC
功能划分
模型:
保存应用程序数据的类
视图:
窗口、控件和其他用户可以看到
并能与之交互的元素的组成部分
控制器:
将模型和视图绑定在一起
确定如何处理用户输入的应用程序逻辑
原则
Controller可以直接和Model通信
Controller也可以直接和View通信
Model和View之间永远不能直接通信
iOS中的View和Controller的通信是透明和固定的
主要通过outlet和action实现
View负责静态的显示对象,由Controller的接口决定其内容显示
View的delegate和dataSource一般就是Controller
Controller负责为View翻译和格式化Model的数据
Model使用通知或回调等方式分发数据更新信息,Controller可以有选择的监听自己感兴趣的信息
View也可以监听广播信息,但一般不是Model发出的信息
一个完整的App就是很多MVC的集合
4、创建一个多视图应用程序
完成一个 具有两个界面的程序,每个界面中有一个按钮,点击后切换到另外一个界面。
主要操作
(0)新建一个空的 ios工程
(1)创建根视图控制器和nib文件--RootViewController
(2)修改应用程序委托,启动打开RootViewController.xib
(3)编写RootViewController.h,添加<切换>按钮的事件处理
(4)修改MainWindow.xib
(5)编写SwitchViewController.m
(6)实现内容视图
代码下载: http://vdisk.weibo.com/s/IdA3p