2013-10-09 93 views
19

我已经开发了iOS7的应用程序,它具有这样的设计如何改变后退按钮颜色iOS7

enter image description here

正如你可以看到有一个蓝色箭头为我所有的返回按钮(使用的UINavigationController和塞格斯)我想让他们的红色,这是我的代码:

[UIBarButtonItem appearance]setTintColor:(UIColorFromRGB(toolbarTintColor))]; 
[[UIBarButtonItem appearance]setTitleTextAttributes:textAtributesDictionaryNavBarButtons forState:UIControlStateNormal]; 

但结果只适用于所有其他的按钮,任何帮助,我会感激

在此先感谢支持

回答

34

导航条的着色颜色属性决定的iOS 7的栏按钮项的文本的颜色你正在寻找的代码是这样的:

[[UINavigationBar appearance] setTintColor:[UIColor redColor]]; 

,当然,用任何你想要的颜色代替[UIColor redColor]

+0

简单efective 100%的工作感谢队友! = D –

+2

tintColor属性没有UI_APPEARANCE_SELECTOR,所以我认为这个解决方案可能不可靠。恩里科Susatyo的答案似乎是正确的。 –

+0

不知何故,这在iOS 8(8.1)中适用于我,但不适用于iOS 7.只有文字颜色发生变化,而不是< 以前用于iOS 7中。嗯.. – Daniel

12

将这个代码在App代表:

Objective-C的

[self.window setTintColor:[UIColor redColor]]; 

斯威夫特

self.window?.tintColor = UIColor.redColor() 
+1

这是一个更好的答案,因为它建议自定义AppDelegate.m中的导航文本。 – Hahnemann

+0

适用于iOS 9.2.1。在Xcode 7.2中。 –

+0

但我不想更改我的标签栏的文字颜色 – fujianjin6471

10

如果你不想改变色调颜色整个应用程序,只是想在一个导航栏上做到这一点,这样做:

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

斯威夫特:

self.navigationController?.navigationBar.tintColor = UIColor.grayColor() 
4

如果你想迅速的版本。

UINavigationBar.appearance().tintColor = UIColor.whiteColor() 

另外,如果您想将此样式应用于所有导航视图控制器。把你的应用程序didFinishLaunchingWithOptions方法的代码在你的AppDelegate

1
  • 如果你使用故事板,那么你已经添加了类督察窗格下的keyPath“tintColor”用户定义的属性。
  • 由于在最新版本的“界面”构建器中删除了静态tintColor属性。 click '+', add tintColor in KeyPath, set the Type color and add your color.
-2
-(void)viewDidAppear:(BOOL)animated 
{ 
    //set back button color 
    [[UIBarButtonItem appearanceWhenContainedIn:[UINavigationBar class], nil] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor redColor], NSForegroundColorAttributeName,nil] forState:UIControlStateNormal]; 
    //set back button arrow color 
    [self.navigationController.navigationBar setTintColor:[UIColor whiteColor]]; 
} 
相关问题