修改navigationController返回按钮颜色和文字

修改返回键的标题

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、正确使用:

// 细节: 本界面上设置, 下个界面上显示

// 方式一

self.navigationItem.backBarButtonItem = [[UIBarButtonItem alloc]initWithTitle:@"返回" style:UIBarButtonItemStylePlain target:nil action:nil];

// 方式二

UIBarButtonItem* backButtonItem = [[UIBarButtonItem alloc]init];

backButtonItem.title = @"返回";

self.navigationItem.backBarButtonItem = backButtonItem;

修改navigationController返回按钮颜色和文字_第1张图片

由图可以看出,想要修改返回键的颜色可以:

self.navigationController.navigationBar.tintColor = [UIColor redColor];


最后说一下使用pushViewController切换到下一个视图时,navigationController按照以下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 - 偏移用于文本阴影

你可能感兴趣的:(修改navigationController返回按钮颜色和文字)