目標
常見的視圖控制器
視圖控制器的功能
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)實現內容視圖