iOS学习——更改导航栏的返回按钮的标题与颜色

转载自:修改navigationController返回按钮颜色和文字

  今天在做项目时遇到这个问题,试了很多方法都失败了。最后终于找到正确的方案了,在这里分享给大家。

引言

在iOS开发过程中,NavigetionController(导航栏)算是比较常用的一种控件,而系统自带的样式有时候往往不是我们所需要的,这时候就要求我们必须自定义或修改一下。

修改返回键的标题

1、错误使用:以下三种方式都不能修改返回键的title(方式三可以修改NavigetionItem的leftBarButtonItem,但不能修改backBarButtonItem的样式)

//最近iOS项目中要求导航栏的返回按钮只保留那个箭头,去掉后边的文字,在网上查了一些资料,最简单且没有副作用的方法就是  
[[UIBarButtonItem appearance] setBackButtonTitlePositionAdjustment:UIOffsetMake(0, -60) forBarMetrics:UIBarMetricsDefault];  
// 方式一  
self.navigationItem.leftBarButtonItem.title = @"返回";  
// 方式二  
self.navigationItem.backBarButtonItem.title = @"返回";  
// 方式三  
UIButton * button = [UIButton buttonWithType:UIButtonTypeCustom];  
button.frame = CGRectMake(0, 0, 80, 49);  
[button setTitle:@"返回" forState:UIControlStateNormal];  
[button addTarget:self action:@selector(buttonClick) forControlEvents:UIControlEventTouchUpInside];  
UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:button];  
self.navigationItem.backBarButtonItem = backButtonItem;  

2、正确使用需要注意的是,只有把自定义的item加在跳转的地方才能生效让下一个页面的返回键标题为 返回

// 细节: 本界面上设置, 下个界面上显示  
// 方式一  
self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];  
// 方式二  
UIBarButtonItem * backButtonItem = [[UIBarButtonItem alloc] init];  
backButtonItem.title = @"返回";  
self.navigationItem.backBarButtonItem = backButtonItem;  

修改返回键的颜色

由图可以看出,想要修改返回键的颜色可以:
self.navigationController.navigationBar.tintColor = [UIColor redColor];  

注意:

最后说一下使用pushViewController切换到下一个视图时,navigation controller按照以下3条顺序更改导航栏的左侧按钮(本段摘自网络):

1、如果B视图有一个自定义的左侧按钮(leftBarButtonItem),则会显示这个自定义按钮;
2、如果B没有自定义按钮,但是A视图的backBarButtonItem属性有自定义项,则显示这个自定义项;
3、如果前2条都没有,则默认显示一个后退按钮,后退按钮的标题是A视图的标题;

扩展1:

// 设置导航条的色调 理解为"混合色"  
self.navigationController.navigationBar.barTintColor = [UIColor blackColor];  
// 导航栏默认是半透明状态  
self.navigationController.navigationBar.backgroundColor = [UIColor blueColor];  
// 左边返回按键颜色  
// 导航栏标题颜色  
[self.navigationController.navigationBar setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor whiteColor]}];  
self.navigationController.navigationBar.translucent = NO;  

扩展2:

UITextAttributeFont - 字体
UITextAttributeTextColor - 文字颜色
UITextAttributeTextShadowColor - 文字阴影颜色
UITextAttributeTextShadowOffset - 偏移用于文本阴影

转载于:https://www.cnblogs.com/mukekeheart/p/8191170.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值