UIBAButtonim setTintColor不';I don’我不想在iOS7上工作

UIBAButtonim setTintColor不';I don’我不想在iOS7上工作,ios7,uibarbuttonitem,uicolor,Ios7,Uibarbuttonitem,Uicolor,在iOS6中,我使用以下代码创建我的uibarbuttonite: UIBarButtonItem* validate = [[UIBarButtonItem alloc]initWithTitle:@"MyTitle" style:UIBarButtonItemStylePlain target:self action:@selector(actionValidate)]; [validate setTintColor:[UIColor orangeColor]]; self.

在iOS6中,我使用以下代码创建我的uibarbuttonite:

UIBarButtonItem* validate = [[UIBarButtonItem alloc]initWithTitle:@"MyTitle" style:UIBarButtonItemStylePlain target:self action:@selector(actionValidate)];
    [validate setTintColor:[UIColor orangeColor]];
    self.navigationItem.rightBarButtonItem = validate;

它在iOS6中工作正常,但在iOS7中,按钮的颜色只有在按下时才会改变。。如何解决此问题?

在iOS7中,如果需要更改
导航栏
按钮的颜色,则必须为
导航栏
设置
tintColor
,而不是为特定的
按钮
设置

navigationController.navigationBar.tintColor = [UIColor orangeColor];
编辑:这在iOS7中有效,您需要执行以下检查:

float systemVersion = [[[UIDevice currentDevice] systemVersion] floatValue];
if (systemVersion >= 7.0)
{
    navigationController.navigationBar.tintColor = [UIColor orangeColor]
}

我无法让@Chris的方法发挥作用(iOS 8,如@Adama所说)

我的用例是,我想将所有
UIToolbar
&
UINavigationBar
按钮设置为默认颜色。因此,使用
UIAppearance
API:


UIBarButtonItem.appearance().setTitleTextAttributes([NSForegroundColorAttributeName:UIColor.redColor()],forState:.Normal)

我不想更改整个条形图,只想更改按钮。即使用户在IOS 7中,我也会使用IOS 6界面。它会更改工具栏按钮,而不是工具栏本身。如果您只想更改其中一个按钮,而不是所有按钮,该怎么办?@stevex,那么您需要使用自定义视图来伪造此按钮。我强烈建议不要将版本与浮动进行比较-这将无法正确比较次要版本(ie 7.11 vs 7.2),它会在次要版本号(7.1.1)之后重击任何内容。