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