-、UIViewController
1、UIViewController是視圖控制器的父類,其他的視圖控制器類都繼承它。每個視圖控制器都有一個單獨的主視圖,這是它獨有的視圖,用view屬性來表示。
2、UINavigationController
? ? ? ? UINavigationController允許在樹狀視圖層次結(jié)構(gòu)間上下導航。它維護一個視圖控制器的棧,任何類型的視圖控制器都可以放入棧中。壓棧只能一個個壓,彈??梢砸黄饛?,也可以一個個彈。
關(guān)于棧的原理是:先進后出。所有的視圖控制器都可以壓進棧內(nèi)。過程:壓棧->出棧
3、UITabBarController
? ? 當應(yīng)用程序需要用許多不同的交互模式或者不同的方式來查看相同的數(shù)據(jù)時,我們就可以考慮使用標簽欄。優(yōu)點:不用復雜的界面跳轉(zhuǎn)
標簽欄的默認數(shù)量是5個
4、UITableViewController
? ? UITableViewController-表格視圖控制器簡化了iPhone項目中的表視圖的使用。它提供了一個標準的已連接UITableView實例并自動將委托和數(shù)據(jù)源設(shè)為指向自己,只需提供這些委托和數(shù)據(jù)源方法,用數(shù)據(jù)填充表格并響應(yīng)用戶單擊即可。
5、地址簿控制器
地址簿用戶界面框架提供了幾個視圖控制器,允許從地址簿中選擇某個人,查看他的詳細信息并添加新聯(lián)系人或修改現(xiàn)有聯(lián)系人條目。
-UIImagePickerController
圖像選取器界面是通過名為UIImagePickerController的模式控制器類執(zhí)行的。
-郵件撰寫
MFMailComposeViewController允許創(chuàng)建用戶可以直接在程序中定制郵件消息。
6、GKPeerPickerController
盡管該控制器是GameKit的一部分,但其技術(shù)也很適合用于非游戲用途,比如文件傳輸、消息傳遞等。
7、Media Player控制器
? ?Media Player框架提供了幾個控制器,允許選擇和播放音樂、電影。
關(guān)于棧的原理是:先進后出。所有的視圖控制器都可以壓進棧內(nèi)。過程:壓棧->出棧
視圖控制器的作用
二、視圖控制器的主要職責
(1)管理其視圖的顯示,對事件作出響應(yīng),例如,iPhone顯示方向或內(nèi)存情況等事件。
(2)充當用戶界面和應(yīng)用程序數(shù)據(jù)模型之間的協(xié)調(diào)者(后面我們將詳細介紹iOS中的MVC模式)。
三、介紹幾個使用視圖控制器時必須了解的函數(shù):
(1)loadView
可以把初始化工作寫在里面,
loadView和nib文件不能共存,現(xiàn)在已經(jīng)不用
(2)viewdidLoad、memory
(3)viewDidUnload
(4)viewWillAppear
在視圖將要顯示時,會調(diào)用這個方法
(5)viewDidAppear
(6)viewWillDisappear
(7)viewDidDisappear
(8)內(nèi)存警告
3、響應(yīng)方向變化
當iPhone旋轉(zhuǎn)的時候,立即調(diào)用shouldAutorotateToInterfaceOrientation:方法
4、處理底內(nèi)存情況
當一個視圖沒有父視圖或當發(fā)布一條內(nèi)存警告的時候,每個視圖控制器通過didReceiveMemoryWarning方法收到一條通知。
一、導航控制器
1、使用導航控制器
(1)為按鈕添加事件,響應(yīng)一個自定義方法,代碼如下:
//在.h中聲明一個方法
-(IBAction)pressToNextPage:(id)sender;
// 在.m文件中實現(xiàn)這個方法
-(IBAction)pressToNextPage:(id)sender
{
//創(chuàng)建SecondViewController實例對象
SecondViewController *secondVC=
[[[SecondViewController
alloc] init] autorelease];
//設(shè)置該視圖的標題
secondVC.title = @"第二頁";
//將實例對象secondVC壓入導航控制棧中
[self.navigationController
pushViewController:secondVC
animated:YES];
}
2、使用導航控制器
(1)、壓入導航棧中代碼如下:
[self.navigationController
pushViewController:視圖實例對象
animated:YES];
二、標簽視圖控制器
1、使用標簽控制器
(1)我們可以使用UITabBarController類來創(chuàng)建多頁的界面。通過從位于屏幕底部的一個標簽頁欄選擇一個標簽頁來顯示頁面。
(2)標簽欄控制器的每個頁面都是一個視圖控制器。