0

我的 UINavigationController 中有这个:

(void)viewDidLoad
{
    [super viewDidLoad];
// Do any additional setup after loading the view.

    self.navigationBar.tintColor = [UIColor whiteColor];
    self.navigationBar.barTintColor = [UIColor blackColor];
    self.navigationItem.leftBarButtonItem.tintColor = [UIColor greenColor];
    //self.navigationItem.rightBarButtonItem.tintColor = [UIColor greenColor];
    //self.navigationItem.rightBarButtonItem = nextButton;
}

前两行工作正常:导航栏的文本是白色的,背景是黑色的。第三个(我尝试过的第四个)似乎被忽略了。

如何使左右栏按钮的文本颜色为不同颜色?我在 ios7 中看到 Apple 的应用程序这样做。

4

4 回答 4

1

这应该有效。我刚刚用一个最小的应用程序进行了测试。确保在尝试着色时实际设置了 leftBarButtonItem。

iOS 7 iPad 3 上左右 UINavigationBar 项目的不同色调颜色

于 2013-10-01T08:09:37.367 回答
1

我不确定,但如果你想对左右按钮应用不同的颜色,那么只需尝试独立应用并删除设置为的行。就试一试吧。tintColortintColornavigationBar

更新 :

看起来 Apple 不希望我们再在左右栏按钮上应用不同的颜色的某些属性的行为已从UINavigationBar更改iOS 7。我已经在我的答案中给出了描述,你可以查看它。

于 2013-10-01T12:51:01.060 回答
1

我在使用其他答案时遇到了麻烦,但这对我来说非常有用。

[self.clearButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
                                         [UIColor redColor], NSForegroundColorAttributeName,
                                         nil] forState:UIControlStateNormal];

其中 clearButton 只是对我的左侧导航栏项目的引用。使用ios7。

于 2013-10-16T20:12:45.007 回答
0

我通过使用以下方法在 AppDelegate 中设置一般颜色来做到这一点:

UINavigationBar.appearance().tintColor = tintColor

然后,我将在各个视图控制器中创建自定义栏按钮项并将其设置为 leftBarButton 或 rightBarButton。

 let filterStr = NSLocalizedString("FILTER", value: "Filter", comment: "Navigation bar item")
 self.searchButton = UIBarButtonItem.init(title: filterStr, style: .plain, target: self, action: #selector(<someMethod()>)     
 self.searchButton?.setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.gray], for: UIControlState.normal)
 self.navigationItem.setLeftBarButton(self.searchButton!, animated: false)

在此处输入图像描述

于 2017-08-24T00:38:49.880 回答