iPhone/iOS UIViewController之UINavigationController

來源:互聯網
上載者:User
文章目錄
  • 一.UINavigationController重要參數
  • 二.建立UINavigationController
  • 三.全屏化UINavigationController
  • 四.調整navigation的內容以及相關事件流
  • 五.顯示Navigation ToolBar
  • 六.常用方法以及參數
  • 參考文檔
  • 參考代碼
一.UINavigationController重要參數

二.建立UINavigationController

    UIViewController *myViewController = [[MyViewController alloc] init];    navigationController = [[UINavigationController alloc]                                initWithRootViewController:myViewController];     window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];    window.rootViewController = navigationController;    [window makeKeyAndVisible];

或者用nib來建立

三.全屏化UINavigationController

1.navigation bar:設定navigationController的translucent為yes

2.toolbar:設定toolbar的translucent為yes

3.設定wantsFullScreenLayout為yes

        nav.navigationBar.translucent=YES;//導覽列可為內容地區,透明        nav.toolbarHidden=NO;//顯示內建的toolbar        nav.toolbar.translucent=YES;//工具列可為內容地區,透明

四.調整navigation的內容以及相關事件流

調整viewControllers調整顯示介面

a)pushViewController:animated:

b)popViewControllerAnimated:

c)setViewControllers:animated:

d)popToRootViewControllerAnimated:

e)popToViewController:animated:

f)也可以直接設定viewControllers,顯示的view 將會是array的lastObject

監控事件

除了controller常規的覆蓋方法外,還可以使用delegate來跟蹤狀態

五.定義 Navigation Bar樣式

1.類似navigation Controller的viewControllers的結構,Navigation Bar是包含UINavigationItem類型的資料

每個viewControllers和navigationItem的array都是平行一一對應的。比方說某個controller在viewControllers的位置和items的位置是一樣的。

viewController通過navigationItem參數來獲得對應的item.

navigationitem主要的參數和位置關係如下:

左:backBarButtonItem這個是在navigation controller中預設添加上去的

      leftBarButtonItem:這個是custom自己的UIBarButtonItem

右:rightBarButtonItem:同樣是custom自己的UIBarButtonItem

中間:titleView:用自己的custom View來顯示中部分用作title.如果沒有用view設定,則使用title這個String對象

詳細如:

2.UINavigationBar參數

a)barStyle:bar的樣式

b)translucent:是否透明,這樣navigationBar下也顯示內容

c)tintColor:背景顏色

3.NavigationBar設定viewController預設的editButton

myViewController.navigationItem.rightBarButtonItem = [myViewController editButtonItem];

五.顯示Navigation ToolBar

1.toolbar的構成

每個content view controller都有對應的toolbarItems的數組,數組中放的是Toolbaritem類的執行個體

UIBarButtonItem *flexibleSpaceButtonItem = [[UIBarButtonItem alloc]                        initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace                        target:nil action:nil];    // Create and configure the segmented control   UISegmentedControl *sortToggle = [[UISegmentedControl alloc]                        initWithItems:[NSArray arrayWithObjects:@"Ascending",                                        @"Descending", nil]];   sortToggle.segmentedControlStyle = UISegmentedControlStyleBar;   sortToggle.selectedSegmentIndex = 0;   [sortToggle addTarget:self action:@selector(toggleSorting:)               forControlEvents:UIControlEventValueChanged];    // Create the bar button item for the segmented control   UIBarButtonItem *sortToggleButtonItem = [[UIBarButtonItem alloc]                                    initWithCustomView:sortToggle];    // Set our toolbar items   self.toolbarItems = [NSArray arrayWithObjects:                         flexibleSpaceButtonItem,                         sortToggleButtonItem,                         flexibleSpaceButtonItem,                         nil];

六.常用方法以及參數

UIViewController:

-(void)hidesBottomBarWhenPushed:當從navigation stack中push或者pop時,自動隱藏底部的toolbar。

參考文檔

View Controller Catalog for iOS

參考代碼

(蘋果官方)NavBar

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.