18-UINavigationController 导航控制器
2015-07-19 16:27
671 查看
1.导航控制器概念 高度44
管理型控制器,用来管理子控制器切换的大管家,本身不显示内容,而是管理子控制器的视图显示
windows->导航栏根控制器->导航栏->视图控制器
UINavigationController的使用步骤
(1)初始化UINavigationController
(2)设置UIWindow的rootViewController为UINavigationController
(3)根据具体情况,通过push方法添加对应个数的子控制器
说明:
导航控制器是通过栈的形式来管理子控制器的(先进后出)
显示在导航控制器上得view永远是栈顶控制器的view
一个导航控制器只有一个导航条,也就是说所有的自控制器公用一个导航条。
2.创建导航控制器
3.设置导航栏标题
4.取得当前导航项,导航项是视图控制器的
self.navigationItem.title = @“”;
效果:
5.导航控制器的常用属性和方法
6.navigationBar设置导航栏风格和颜色
7.UIBarButtonltem设置导航栏按钮 和 添加提示用输入的文字
效果:
效果:
效果:
效果:
3秒退出
8.导航控制器的委托方法
[b]通过设置代理监听视图控制器的切换
[/b]
9.导航控制器总结
[b]
[/b]
管理型控制器,用来管理子控制器切换的大管家,本身不显示内容,而是管理子控制器的视图显示
windows->导航栏根控制器->导航栏->视图控制器
UINavigationController的使用步骤
(1)初始化UINavigationController
(2)设置UIWindow的rootViewController为UINavigationController
(3)根据具体情况,通过push方法添加对应个数的子控制器
说明:
导航控制器是通过栈的形式来管理子控制器的(先进后出)
显示在导航控制器上得view永远是栈顶控制器的view
一个导航控制器只有一个导航条,也就是说所有的自控制器公用一个导航条。
2.创建导航控制器
2.1 第一步:创建第一个导航控制器 //1.创建一个根控制器 RootViewController *root = [[RootViewController alloc] init]; //2.创建一个导航控制器,并在初始化时赋值一个根控制器 UINavigationController *navigation = [[UINavigationController alloc] initWithRootViewController:root]; //3.将windows的根控制器设置为导航控制器 self.window.rootViewController = navigation; 第二步:导航到下一个导航控制器 //1.创建第二个试图控制器 SecondViewController *sec = [[SecondViewController alloc] init]; //2.导航到第二个导航控制器 [self.navigationController pushViewController:sec animated:YES]; //3.设置不隐藏导航栏和下方工具栏 [self.navigationController setNavigationBarHidden:NO animated:YES]; [self.navigationController setToolbarHidden:NO animated:YES];
3.设置导航栏标题
//1.方式一: self.title = @"这是一个标题"; //2.方式二:其实是给导航项中的标题设置的 self.navigationItem.title = @"这是个标题"; //3.方式三: //iOS6以后使用的方法 self.navigationItem.title = @"这是个标题"; NSDictionary *dic = @{ NSFontAttributeName:[UIFont systemFontOfSize:20], NSForegroundColorAttributeName:[UIColor redColor] }; [self.navigationController.navigationBar setTitleTextAttributes:dic]; //4.自定义视图 UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 90, 40)]; label.backgroundColor = [UIColor greenColor]; self.navigationItem.titleView = label;
4.取得当前导航项,导航项是视图控制器的
self.navigationItem.title = @“”;
效果:
5.导航控制器的常用属性和方法
常用方法 //弹到上一个视图控制器 有动画效果 [self.navigationController popViewControllerAnimated:YES]; //弹到根视图控制器 有动画效果 [self.navigationController popToRootViewControllerAnimated:YES]; //弹到一个指定视图控制器 有动画效果 [self.navigationController popToViewController:<#(UIViewController *)#> animated:YES]; [self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES]; for (UIViewController *temp in self.navigationController.viewControllers) { if ([temp isKindOfClass:[你要跳转到的Controller class]]) { [self.navigationController popToViewController:temp animated:YES]; } }
6.navigationBar设置导航栏风格和颜色
//设置导航栏颜色 navigation.navigationBar.barTintColor = [UIColor lightGrayColor]; //设置导航栏风格 navigation.navigationBar.barStyle = UIBarStyleBlackTranslucent; //设置导航栏为透明 navigation.navigationBar.translucent = YES; //设置导航栏背景图片 [self.navigationController.navigationBar setBackgroundImage:[UIImage imageNamed:@"btn_02"] forBarMetrics:UIBarMetricsDefault];
7.UIBarButtonltem设置导航栏按钮 和 添加提示用输入的文字
UIBarButtonltem是用来显示导航栏左侧和右侧的按钮 UIBarButtonltem修改按钮时使用 //UIBarButtonItem第一种初始化方法,传入一个按钮名称,并实现一个方法 UIBarButtonItem *left = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStyleDone target:self action:@selector(leftAction:)]; self.navigationItem.leftBarButtonItem = left; //自定义返回按钮 UIBarButtonItem *btn = [UIBarButtonItem alloc] initWithCustomView:<#(UIView *)#>; self.navigationItem.backBarButtonItem = btn; //开启手势 navigation.interactivePopGestureRecognizer.delegate = self;
效果:
//UIBarButtonItem第二种初始化方法,传入一个按钮, UIButton *right = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 40, 30)]; [right setImage:[UIImage imageNamed:@"btn_02"] forState:UIControlStateNormal]; UIBarButtonItem *b = [[UIBarButtonItem alloc] initWithCustomView:button]; self.navigationItem.rightBarButtonItem = b;
效果:
//UIBarButtonItem第二种初始化方法,传入一张图片, UIBarButtonItem *u = [[UIBarButtonItem alloc] initWithImage:(UIImage *) style:(UIBarButtonItemStyle) target:(id) action:(SEL)];
效果:
//修改返回标题 UIBarButtonItem *title = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:self action:nil]; self.navigationItem.backBarButtonItem = title;
效果:
//设置提示框 self.navigationItem.prompt = @"载入";
3秒退出
8.导航控制器的委托方法
[b]通过设置代理监听视图控制器的切换
[/b]
//视图控制器将要显示时调用 - (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { NSLog(@"视图控制器将要显示"); } //试图控制器已经显示时调用 - (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated { NSLog(@"试图控制器已经显示"); }
9.导航控制器总结
[b]
[/b]
相关文章推荐
- Hadoop 管理工具HUE配置-filebrowser配置
- 17-UIViewController 模态视图及view控制器里那几个方法作用
- UIView 层次结构
- iOS 生成随机颜色(UIColor)
- iOS SDK详解之UIScreen
- PAT (Advanced Level) 1004. Counting Leaves (30) 层序遍历,两个queue辅助
- java中queue的使用
- easyui组件解析的实现思路
- Vision Acquisition Software安装后IMAQdx,IMAQ函数不出现的问题
- [APUE]fork后子进程的运行情况
- CodeForces 373B——模拟——Making Sequences is Fun
- DirectUI界面编程(三)从XML文件中加载界面
- DirectUI界面编程(三)从XML文件中加载界面
- DirectUI界面编程(三)从XML文件中加载界面
- [Android UI]分享:简洁大方的自定义的进度条NumberProgressBar
- UIPickerView选择省市
- hdu 1242 Rescue(BFS搜索)
- cell自定义方式一 高度一致时
- UIcolor RGB颜色
- map(function, sequence)