目標 : NavigationController導航的做用和使用php
程序效果圖以下 :ios
程序啓動第一個 view 上面包含了一個 NavigationController 。爲了區別視圖界面,咱們在第一個放了一個lable title爲:rootView 第二個視圖中 放了一個 lable title爲two,app
同時第一個視圖中還放了一個 button 點擊button 會跳入到第二個 視圖中 ,並能夠在 第二個視圖中 點擊 NavigationController 中的 root View(系統自動生成) 按鈕 返回到 第一個視圖中,這就是 NavigationController的做用。iphone
NavigationController 是建立分層應用程序的主要工具,它在管理在管理以及換入,換出多個視圖方面 和 TabBarController 比較相似,不一樣的地方是 NavigationController是做爲棧(stack)來實現的。根視圖控制器在堆棧最底層,接下來入棧的是General視圖控制器和Auto-Lock視圖控制器。能夠調用 pushViewControllerAnimated:方法將視圖控制器推入棧頂,也能夠調用popViewControllerAnimated:方 法將視圖控制器彈出堆棧 以下圖:編輯器
此圖摘自於互聯網ide
UINavigationController的結構組成工具
看下圖,UINavigationController有Navigation bar ,Navigation View ,Navigation toobar等組成。spa
此圖摘自於互聯網code
下面咱們使用控件來實現一次 :對象
爲了讓我更清楚的瞭解NavigationController的用法,咱們建立一個空的 ios application 項目。
啓動Xcode 工具 建立一個新的工程, ios-》application -》 empty application
填寫工程信息 , 我這裏項目名稱起名爲 : iphone_Sample_Navigation
class prefix 起名爲 : Nav 下面複選框部分 所有 保持不選中狀態,以下圖:
點擊 next 點擊 選擇保存位置 。
建立好 項目後, 開始步入正題 。
1: 首先建立一個 空的 xib 視圖文件, 在視圖文件中添加 一個UINavigationController
點擊Xcode中的項目目錄 ,右鍵 new file -》 ios -》User Interface -》 Empty 點擊 next, 選擇 Device family 爲 iphone 點擊next 填寫文件名,爲 」NavigationViewContoller「 其餘保持默認。 點擊建立 。
建立後 Xcode 爲咱們生成了 一個 NavigationViewContoller.xib 文件 , 點擊 打開它 。咱們發現 該 xib 視圖文件中是空的 ,不用擔憂 咱們拖一個Navigation Contoller組件進去,此視圖將做爲咱們的根視圖控制器,它在堆棧最底層的。
如圖 :
2:和委託器創建鏈接。即便用委託器來管理咱們的 NavigationController 在上圖界面下打開 助理編輯器,把 NavigationController 組件以輸出口(IBOutlet)的方式鏈接到 委託器的.h 文件中去。如圖:
上圖中 紅色 框框標示的部分爲 創建鏈接後的 輸出口。 並在委託器的 .m 文件中 生成相應的聲明管理方法。
3: 打開咱們的委託器。(這裏爲:NavAppDelegate.m)初始化 NavigationController 對象,並添加到委託中的view 中,這時 NavigationController 對象成爲咱們的根視圖控制器對象了。 代碼以下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
[[NSBundle mainBundle]loadNibNamed:@"NavigationViewContoller" owner:self options:nil];
[self.window addSubview:self.naviGationController.view];
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
上面代碼中,藍色代碼部分 爲核心代碼 。
啓動咱們的 模擬器, 運行程序,就能夠看到咱們的 NavigationController視圖界面了。
細心的童鞋 發現 怎麼咱們的NavigationController 的 頭部沒有標題呢。 呵呵是的,咱們還沒設置標題了 ,打開xib視圖界面,依次展開左側Objects欄目中的 NavigationController 選中 Navigation ltem 對象,打開咱們的屬性檢查器,就會看到咱們的 title 屬性了(以下圖), 設置它就能夠看到 NavigationController 的頭部標題了, 趕快去試試吧。
接着 咱們來試試多視圖跳轉。 咱們須要在建立一個 視圖 controller , 選中Xcode中的項目目錄 右鍵 -》 new file -》Cocoa Touch -》Objective -C class 建立一個 帶xib的controller 這裏命名爲 :NavTwoViewController 繼承至 UIViewController 並選中 With XIB for user interface 複選框 建立。
打開 NavTwoViewControlle,xib 文件,在這個文件咱們只須要放個 label 來標示爲第二個視圖界面便可
保存並關閉。
繼續打開咱們NavigationViewContoller.xib 視圖界面 爲咱們的視圖界面拖放一個Button按鈕。並給它設置個title屬性,一樣點開屬性檢查器,在屬性檢查器,有title 屬性,這個按鈕的做用是 ,點擊它 跳到咱們剛剛建立的 view
拖放好button 後 須要爲 改鏈接建立一個 動做鏈接, 還在在這個視圖界面下,打開助理編輯器,把這個button 以Action 方式鏈接到 委託器的 頭文件中,注意:Connect: 須要選擇爲Action 以下圖 :
上圖中爲 鏈接後成功後的界面, 此時在委託器的.m 文件中也會爲咱們生成這個方法,咱們實現這個方法,來實現跳轉 。代碼以下 :
- (IBAction)gotoView:(id)sender {
NavTwoViewController *root=[[NavTwoViewController alloc]initWithNibName:@"NavTwoViewController" bundle:nil];
root.title=@"two view";
[self.naviGationController pushViewController:root animated:YES];
}
要在 委託器類(NavAppDelegate.m)中使用 NavTwoViewController 對象 還須要在 委託器的 開始引入這個類,代碼以下(藍色部分):
#import "NavAppDelegate.h"
#import "NavTwoViewController.h"
@implementation NavAppDelegate
保存 運行 便可 , root.title=@"two view"; 爲第二個界面設置 導航title
×××地址 :
https://blog.51cto.com/ext/down_att.php?aid=36077&code=1352