UI_UINavigationController
创建 UINavigationController(导航控制器)
在AppDelegate.m中创建
// 创建一个普通控制器
RootViewController *rootVC = [[RootViewController alloc] init];
// UINavigationController主要用来管理一组控制器(至少有一个),自带 view 可是不使用
UINavigationController *rootNC = [[UINavigationController alloc] initWithRootViewController:rootVC];
// 加入 控件时 是否计算导航条的宽度 默认 YES
rootNC.navigationBar.translucent = NO;
// 改变导航条的字体颜色
rootNC.navigationBar.tintColor = [UIColor blueColor];
// 改变导航条总体颜色
rootNC.navigationBar.barTintColor = [UIColor brownColor];
// 改变导航条标题颜色
rootNC.navigationBar.titleTextAttributes = @{NSForegroundColorAttributeName:[UIColor redColor]};
// 给整个导航条加上背景图片
[rootNC.navigationBar setBackgroundImage:[UIImage imageNamed:@"2.png"] forBarMetrics:UIBarMetricsDefault];
self.window.rootViewController = rootNC;
[rootVC release];
[rootNC release];
入栈和出栈
在 view 中设置 button 属性,并创建 button
入栈要引入后一个页面的控制器(controller)
@property (nonatomic, retain)UIButton *button;
在 controller 中绑定并实现点击事件
- (void)viewDidLoad {
[super viewDidLoad];
self.title = @"首页";
// 绑定点击事件
[self.rootView.button addTarget:self action:@selector(buttonDidClicked:) forControlEvents:UIControlEventTouchUpInside];
}
#pragma mark - button 点击事件
- (void)buttonDidClicked:(UIButton *)sender
{
ScendViewController *secondVC = [[ScendViewController alloc] init];
// 压栈处理 进入下一个页面
[self.navigationController pushViewController:secondVC animated:YES];
}
出栈
#pragma mark - 实现点击事件 出栈
- (void)buttonDidClicked:(UIButton *)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
指定页面跳转
#pragma mark - 通用方法 pop到指定控制器
- (void)button2DidClicked:(UIButton *)sender
{
// pop 到指定控制器
// [self.navigationController popToViewController:self.navigationController.viewControllers[0] animated:YES];
NSArray *array = self.navigationController.viewControllers;
RootViewController *root = nil;
for (id VC in array) {
if ([VC isKindOfClass:[RootViewController class]]) {
root = VC;
break;
}
}
if (root != nil) {
[self.navigationController popToViewController:root animated:YES];
}
}
跳转到根视图控制器
- (void)buttonDidClicked:(UIButton *)sender
{
[self.navigationController popToRootViewControllerAnimated:YES];
}
自己定义返回按钮
- (void)viewDidLoad {
[super viewDidLoad];
// 定义一个返回按钮
// left and right 都能够
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"我的返回" style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"1.png"] style:UIBarButtonItemStylePlain target:self action:@selector(leftButtonItemAction:)];
UIBarButtonItem *leftButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemReply target:self action:@selector(leftButtonItemAction:)];
// 让系统左(右)边按钮换掉
self.navigationItem.leftBarButtonItem = leftButtonItem;
}
#pragma mark - 导航栏左边按钮的点击方法
- (void)leftButtonItemAction:(UIBarButtonItem *)sender
{
[self.navigationController popViewControllerAnimated:YES];
}
UI_UINavigationController的更多相关文章
随机推荐
- LocalDateTime查找最近的五分钟点
/** * 最近的五分钟 * @param dateTime * @return */ public static LocalDateTime getNear5(LocalDateTime dateT ...
- JavaScript学习三
2019-05-30 20:38:50 逻辑运算符 && || ! !如果对非布尔值取反,则将会把数值变成布尔值,然后再取反 隐式类型转化 为任意的数据类型做两次非运算,既可将其转换成 ...
- border使用
border属性 border-width border-style border-color inherit border-style的值:none dotted(点线) dashed(虚 ...
- JavaScript变量提升及作用域
今天在知乎看前端面试题的时候,看到这样的问题,发现自己懂的真的是太少了,看了给的例子,所以写一下自己的理解. 首先放一段代码: var v= “hello JavaScript”; alert(v); ...
- dotnetnuke7.x 弹出窗口的皮肤加载问题
皮肤文件夹中必须要有popUpSkin.ascx才会正常加载skin.css文件
- dubbo介绍及实战
1. dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封 ...
- session 存入redis 或 memcache 的方法
Session简介 session,中文经常翻译为会话,其本来的含义是 指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以称之为一个session.有时候我们 ...
- vue中怎样实现 路由拦截器
vue中怎样实现 路由拦截器(当用户没有登录的时候,跳转到登录页面,已经登录的时候,不能跳转到登录页,除非后台token失效) 在 我们需要实现这样 一个功能,登录拦截 其实就是 路由拦截,首先在定义 ...
- Vuex教程简单实例
什么是Vuex? vuex是一个专门为vue.js设计的集中式状态管理架构.状态?我把它理解为在data中的属性需要共享给其他vue组件使用的部分,就叫做状态.简单的说就是data中需要共用的属性. ...
- mysql中int、bigint、smallint 和 tinyint的区别与长度
各种整形,总结留作参考. bigint 从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字).存储大小为 ...