更改UINavigationController按钮的颜色
更改UINavigationController按钮的颜色
在我的UINavigationController中,我有以下代码:\n
(void)viewDidLoad { [super viewDidLoad]; // 加载视图后进行任何其他设置 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; }
\n前两行代码正常工作:导航栏的文本是白色的,背景是黑色的。第三行(和我尝试的第四行),似乎被忽略了。\n如何使左右栏按钮的文本颜色为不同的颜色?我在iOS 7中看到Apple的应用程序是这样做的。
问题出现的原因:在iOS7中,UITextAttributeTextColor
属性已被废弃,需要使用NSForegroundColorAttributeName
属性来改变导航栏按钮的颜色。
解决方法:
使用NSForegroundColorAttributeName
属性来改变导航栏按钮的颜色。具体的代码如下:
[self.clearButton setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys: [UIColor redColor], NSForegroundColorAttributeName, nil] forState:UIControlStateNormal];
其中,clearButton
是对左侧导航栏按钮的引用。
注意:以上解决方法适用于iOS7。