自定义导航栏、按钮与iOS6的兼容性问题

自定义导航栏、按钮与iOS6的兼容性问题,ios,objective-c,uinavigationbar,uinavigationitem,Ios,Objective C,Uinavigationbar,Uinavigationitem,我正在使用的应用程序有一个自定义导航栏。在我的AppDelegate.m中,我完成了以下操作: setBackgroundImage已将导航栏的默认颜色替换为我自己的.png图像之一; setTitleTextAttributes:已设置为白色; setTintColor:已设置为白色 - (void)customizeUserInterface { [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:

我正在使用的应用程序有一个自定义导航栏。在我的AppDelegate.m中,我完成了以下操作:

setBackgroundImage已将导航栏的默认颜色替换为我自己的.png图像之一; setTitleTextAttributes:已设置为白色; setTintColor:已设置为白色

- (void)customizeUserInterface {
    [[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"navBar"] forBarMetrics:UIBarMetricsDefault];
    [[UINavigationBar appearance] setTitleTextAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[UIColor whiteColor],NSForegroundColorAttributeName, nil]];
    [[UINavigationBar appearance] setTintColor:[UIColor whiteColor]];
}
在iOS 7中,一切看起来都很好,但在运行iOS 6的设备上,导航栏按钮是白色对白色的,因为在iOS 7中,当色调颜色改变按钮的文本时,因为所有按钮都在iOS 7-文本中,在iOS 6设置中,色调颜色调整按钮的背景,文本保持白色。因此,在iOS 6中,导航栏按钮是白色的,带有白色文本

我更喜欢我的表在iOS 7中的外观,也不愿意仅仅因为向后兼容iOS 6而改变它

有人能解决这个问题吗。是否有一种方法可以通过编程方式更改导航栏圆形rec按钮的背景色,或者仅更改圆形rec按钮内的文本,同时不更改iOS 7中的外观

或者有没有办法有条件地设置这些更改?换句话说,我是否可以通过编程方式将自定义导航栏设置为仅在配备iOS 7+的设备上显示,并对之前的所有iOS版本使用默认导航栏

还是有别的聪明的东西我没想到


谢谢

嘿,这真的可以通过编程控制你的东西。在ios7中,你有自己的方法来完成它&当然,你已经在ios6中完成了

这是要检查的版本

现在你可以有条件地做事了


希望能有所帮助。

在customizeUserInterface方法中,我建议使用一个大的if/else if语句来测试设备的版本。如果是iOS 7,就这样做;如果是iOS 6,就这样做。