一、 UINavigationController
1.用法
導航控制器是ios中常用的多視圖控制器之一,它用來管理多個視圖控制器。
導航控制器所控制的視圖控制器都有一定的層級關係。
創建/ UINavigationController繼承於UIViewController,以棧的方式管理所控制的視圖控制器,至少要有一個被管理的視圖控制器。
創建的時候需要用戶提供一個視圖控制器作爲導航控制器的一個根視圖控制器。
LeiMuViewController * lei = [[LeiMuViewController alloc] init];
UINavigationController * nav = [[UINavigationController alloc] initWithRootViewController:lei];
[_window setRootViewController:nav];
[nav release];
[lei release];
入棧和出棧
UINavigationController通過控制入棧和出棧來展示各個視圖控制器。
視圖控制器切換常用方法
pushViewController:animated //進入下一個視圖控制器。
[self.navigationController pushViewController:forth animated:YES];
popViewControllerAnimated //返回到上一個視圖控制器
[self.navigationController popViewControllerAnimated:YES];
popToViewController:animated //返回到指定的視圖控制器
UIViewController * third = [self.navigationController.viewControllers objectAtIndex:2];
[self.navigationController popToViewController:third animated:YES];
popToRootViewControllerAnimated //返回到根視圖控制器
[self.navigationController popToRootViewControllerAnimated:YES];
2.定製UINavigationBar
對於navigationBar,IOS默認的高度是64
如果將navigationBar的透明度關閉之後,navigationBar的高度將會變爲44.
self.navigationController.navigationBar.translucent= NO; //設置透明度開關
自定義navigationBar
修改UINavigationBar的背景圖片
修改UINavigationBar的背景顏色
[nav.navigationBar setTintColor:[UIColor redColor]]; 字體顏色
[nav.navigationBar setBarTintColor:[UIColor grayColor]]; 背景顏色
UINavigationItem的使用(控制bar的顯示內容)
3.界面間的傳值
第二個視圖控制器如何獲得第一個視圖控制器的部分信息?
1.屬性傳值
2.單例傳值 : 類只有一個實例,是一種常用的設計模式。ios中廣泛使用。
3.代理傳值(?)