我在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的应用程序就是这样做的。
答案 0 :(得分:1)
这应该有效。我刚刚测试了一个最小的应用程序。确保在尝试着色时实际设置了leftBarButtonItem。
答案 1 :(得分:1)
我不确定但是如果你想将不同颜色应用于左和右栏按钮,那么只需尝试独立应用tintColor
并删除将tintColor
设置为navigationBar
的行。试试吧。
更新:
看起来Apple不再希望我们在 left 和 right 栏按钮上应用不同的颜色了。 UINavigationBar
的某些属性的行为已从iOS 7
更改。我已在Answer中给出了说明,您可以查看。
答案 2 :(得分:1)
我在使用其他答案时遇到了麻烦,但这对我来说很有用。
[self.clearButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:
[UIColor redColor], NSForegroundColorAttributeName,
nil] forState:UIControlStateNormal];
其中clearButton只是对左侧导航栏项的引用。使用ios7。
答案 3 :(得分: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)