设置导航栏的色调颜色恢复到iOS 6的蓝色

我有一个iOS 6应用程序,使用以下命令将所有导航栏button的色调设置为绿色:

[[UIBarButtonItem appearance] setTintColor:[UIColor colorWithRed:(100.0f/255.0f) green:(190.0f/255.0f) blue:(100.0f/255.0f) alpha:1.0f]]; 

这是在应用程序启动时完成的。 这在运行iOS 6的手机上运行良好,但在运行iOS 7的手机上,tint颜色有时会出现,有时甚至不会。 显示AlertView时尤其如此。 这消除了任何显示正确的绿色色调的button的色调,并恢复到标准的iOS 6蓝色色调。

为了确认这不是我在我的大项目中所做的事情,我创build了一个基本的模板Master-detail xcode项目来确认,只添加上面的行和一个alertviewpopup窗口,并且在那里也会发生这种情况。

我想知道是否1)其他人正在经历这2)如果是这样,你有没有find一个解决办法和3)任何人知道,如果苹果已经证实这是一个错误。

目前我们不打算将这个应用程序转换为iOS 7的外观,所以这不是一个选项。 谢谢。

从官方的Apple文档:

在iOS 6中,tintColor将导航栏,选项卡栏,工具栏,search栏和范围栏的背景着色。 要在iOS 7中着色吧背景,请改用barTintColor属性。

您应该参考完整的UI过渡指南,了解iOS 7中以不同方式行事的UI元素。如果您想同时支持,则可以检查iOS版本并为每个版本添加不同的代码:

 if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) { // Load resources for iOS 6.1 or earlier } else { // Load resources for iOS 7 or later }