常見的視圖控制器

-、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)標簽欄控制器的每個頁面都是一個視圖控制器。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容