ios開發入門- NavigationController導航控制使用

目標 : NavigationController導航的作用和使用

程序效果圖如下 :

 

程序啓動第一個 view 上面包含了一個 NavigationController 。爲了區別視圖界面,我們在第一個放了一個lable title爲:rootView 第二個視圖中  放了一個 lable title爲two,

同時第一個視圖中還放了一個 button  點擊button 會跳入到第二個 視圖中 ,並可以在 第二個視圖中 點擊 NavigationController 中的 root View(系統自動生成) 按鈕 返回到 第一個視圖中,這就是 NavigationController的作用。

NavigationController 是創建分層應用程序的主要工具,它在管理在管理以及換入,換出多個視圖方面 和 TabBarController 比較類似,不同的地方是 NavigationController是作爲棧(stack)來實現的。根視圖控制器在堆棧最底層,接下來入棧的是General視圖控制器和Auto-Lock視圖控制器。可以調用 pushViewControllerAnimated:方法將視圖控制器推入棧頂,也可以調用popViewControllerAnimated:方 法將視圖控制器彈出堆棧 如下圖:

 

   此圖摘自於互聯網

UINavigationController的結構組成

看下圖,UINavigationController有Navigation bar  ,Navigation View ,Navigation toobar等組成。

 

   此圖摘自於互聯網

下面我們使用控件來實現一次 :

爲了讓我更清楚的瞭解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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章