19

我已经为 iOS7 开发了一个具有这种设计的应用程序

在此处输入图像描述

如您所见,我的所有 BackButton 都有一个蓝色箭头(使用 UINavigationController 和 segues),我想让它们变成红色,这是我的代码:

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

但结果仅适用于所有其他按钮,我将不胜感激

提前感谢您的支持

4

8 回答 8

35

导航栏的 tint color 属性决定了 iOS 7 中其栏按钮项的文本颜色。您要查找的代码如下所示:

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

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

于 2013-10-09T18:30:24.733 回答
12

将此代码放入您的 App Delegate 中:

Objective-C

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

迅速

self.window?.tintColor = UIColor.redColor()
于 2013-10-11T04:29:38.463 回答
10

如果您不想更改整个应用程序中的色调颜色而只想在一个导航栏上执行此操作,请执行以下操作:

self.navigationController.navigationBar.tintColor = [UIColor redColor];
于 2014-01-21T05:54:31.117 回答
4

如果你想要快速版本。

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

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

于 2015-07-18T17:20:56.970 回答
1

迅速:

self.navigationController?.navigationBar.tintColor = UIColor.grayColor()
于 2014-11-14T18:06:22.283 回答
1
  • 如果您使用情节提要,则必须在类检查器窗格下为 keyPath 'tintColor' 添加用户定义的属性。
  • 因为在最新版本的界面生成器中删除了静态 tintColor 属性。单击“+”,在 KeyPath 中添加 tintColor,设置类型颜色并添加您的颜色。
于 2015-08-10T08:14:04.893 回答
1

可以直接在IB中设置:

在此处输入图像描述

于 2016-04-08T14:19:54.513 回答
-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]];
}
于 2015-11-17T06:56:14.310 回答