文章目錄
- 一.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