-隙轻、UIViewController
1庞钢、UIViewController是視圖控制器的父類访锻,其他的視圖控制器類都繼承它褪尝。每個(gè)視圖控制器都有一個(gè)單獨(dú)的主視圖,這是它獨(dú)有的視圖朗若,用view屬性來(lái)表示恼五。
2、UINavigationController
? ? ? ? UINavigationController允許在樹狀視圖層次結(jié)構(gòu)間上下導(dǎo)航哭懈。它維護(hù)一個(gè)視圖控制器的棧灾馒,任何類型的視圖控制器都可以放入棧中。壓棧只能一個(gè)個(gè)壓遣总,彈棽锹蓿可以一起彈,也可以一個(gè)個(gè)彈旭斥。
關(guān)于棧的原理是:先進(jìn)后出容达。所有的視圖控制器都可以壓進(jìn)棧內(nèi)。過(guò)程:壓棧->出棧
3垂券、UITabBarController
? ? 當(dāng)應(yīng)用程序需要用許多不同的交互模式或者不同的方式來(lái)查看相同的數(shù)據(jù)時(shí)花盐,我們就可以考慮使用標(biāo)簽欄。優(yōu)點(diǎn):不用復(fù)雜的界面跳轉(zhuǎn)
標(biāo)簽欄的默認(rèn)數(shù)量是5個(gè)
4、UITableViewController
? ? UITableViewController-表格視圖控制器簡(jiǎn)化了iPhone項(xiàng)目中的表視圖的使用算芯。它提供了一個(gè)標(biāo)準(zhǔn)的已連接UITableView實(shí)例并自動(dòng)將委托和數(shù)據(jù)源設(shè)為指向自己柒昏,只需提供這些委托和數(shù)據(jù)源方法,用數(shù)據(jù)填充表格并響應(yīng)用戶單擊即可熙揍。
5职祷、地址簿控制器
地址簿用戶界面框架提供了幾個(gè)視圖控制器,允許從地址簿中選擇某個(gè)人届囚,查看他的詳細(xì)信息并添加新聯(lián)系人或修改現(xiàn)有聯(lián)系人條目有梆。
-UIImagePickerController
圖像選取器界面是通過(guò)名為UIImagePickerController的模式控制器類執(zhí)行的。
-郵件撰寫
MFMailComposeViewController允許創(chuàng)建用戶可以直接在程序中定制郵件消息意系。
6泥耀、GKPeerPickerController
盡管該控制器是GameKit的一部分,但其技術(shù)也很適合用于非游戲用途昔字,比如文件傳輸爆袍、消息傳遞等首繁。
7作郭、Media Player控制器
? ?Media Player框架提供了幾個(gè)控制器,允許選擇和播放音樂(lè)弦疮、電影夹攒。
關(guān)于棧的原理是:先進(jìn)后出。所有的視圖控制器都可以壓進(jìn)棧內(nèi)胁塞。過(guò)程:壓棧->出棧
視圖控制器的作用
二咏尝、視圖控制器的主要職責(zé)
(1)管理其視圖的顯示,對(duì)事件作出響應(yīng)啸罢,例如编检,iPhone顯示方向或內(nèi)存情況等事件。
(2)充當(dāng)用戶界面和應(yīng)用程序數(shù)據(jù)模型之間的協(xié)調(diào)者(后面我們將詳細(xì)介紹iOS中的MVC模式)扰才。
三允懂、介紹幾個(gè)使用視圖控制器時(shí)必須了解的函數(shù):
(1)loadView
可以把初始化工作寫在里面,
loadView和nib文件不能共存衩匣,現(xiàn)在已經(jīng)不用
(2)viewdidLoad蕾总、memory
(3)viewDidUnload
(4)viewWillAppear
在視圖將要顯示時(shí),會(huì)調(diào)用這個(gè)方法
(5)viewDidAppear
(6)viewWillDisappear
(7)viewDidDisappear
(8)內(nèi)存警告
3琅捏、響應(yīng)方向變化
當(dāng)iPhone旋轉(zhuǎn)的時(shí)候生百,立即調(diào)用shouldAutorotateToInterfaceOrientation:方法
4、處理底內(nèi)存情況
當(dāng)一個(gè)視圖沒(méi)有父視圖或當(dāng)發(fā)布一條內(nèi)存警告的時(shí)候柄延,每個(gè)視圖控制器通過(guò)didReceiveMemoryWarning方法收到一條通知蚀浆。
一、導(dǎo)航控制器
1、使用導(dǎo)航控制器
(1)為按鈕添加事件市俊,響應(yīng)一個(gè)自定義方法杠输,代碼如下:
//在.h中聲明一個(gè)方法
-(IBAction)pressToNextPage:(id)sender;
// 在.m文件中實(shí)現(xiàn)這個(gè)方法
-(IBAction)pressToNextPage:(id)sender
{
//創(chuàng)建SecondViewController實(shí)例對(duì)象
SecondViewController *secondVC=
[[[SecondViewController
alloc] init] autorelease];
//設(shè)置該視圖的標(biāo)題
secondVC.title = @"第二頁(yè)";
//將實(shí)例對(duì)象secondVC壓入導(dǎo)航控制棧中
[self.navigationController
pushViewController:secondVC
animated:YES];
}
2、使用導(dǎo)航控制器
(1)秕衙、壓入導(dǎo)航棧中代碼如下:
[self.navigationController
pushViewController:視圖實(shí)例對(duì)象
animated:YES];
二蠢甲、標(biāo)簽視圖控制器
1、使用標(biāo)簽控制器
(1)我們可以使用UITabBarController類來(lái)創(chuàng)建多頁(yè)的界面据忘。通過(guò)從位于屏幕底部的一個(gè)標(biāo)簽頁(yè)欄選擇一個(gè)標(biāo)簽頁(yè)來(lái)顯示頁(yè)面鹦牛。
(2)標(biāo)簽欄控制器的每個(gè)頁(yè)面都是一個(gè)視圖控制器。