一、 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.代理传值(?)