在iOS6中,我使用此代码制作了我的UIBarButtonItem:
UIBarButtonItem* validate = [[UIBarButtonItem alloc]initWithTitle:@"MyTitle" style:UIBarButtonItemStylePlain target:self action:@selector(actionValidate)];
[validate setTintColor:[UIColor orangeColor]];
self.navigationItem.rightBarButtonItem = validate;
它在iOS6中工作正常,但在iOS7中,按钮的颜色只有在你推动时才会改变。我该如何解决这个问题?
答案 0 :(得分:5)
在iOS7中,如果您需要更改navigationBar
按钮颜色,则必须为tintColor
设置navgationBar
,而不再为特定barButton
设置{。} >
navigationController.navigationBar.tintColor = [UIColor orangeColor];
编辑:这适用于iOS7,您需要进行检查:
float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 7.0)
{
navigationController.navigationBar.tintColor = [UIColor orangeColor]
}
答案 1 :(得分:2)
我无法使用@Chris的方法(iOS 8就像@Adama所说)。
我的用例是我要设置所有UIToolbar
& UINavigationBar
按钮为默认颜色。所以使用UIAppearance
API:
UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName : UIColor.redColor()], forState: .Normal)