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

时间:2013-11-08 18:31:03

标签: ios iphone objective-c

我有一个iOS 6应用程序,通过使用以下方法将所有导航栏按钮的色调颜色设置为绿色:

[[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的手机上,有时会出现色调,有时则不然。特别是在显示AlertView时会发生这种情况。这会消除显示正确绿色色调的任何按钮的色调,并将按钮恢复为标准iOS 6蓝色色调。

为了确认它不是我在我的大项目中所做的事情,我创建了一个基本模板Master-detail xcode项目来确认并且只添加了上面的行和一个alertview弹出窗口,这也发生在那里。 / p>

我想知道是否1.)其他人正在经历这个2.)如果是这样,你找到了解决办法吗?3)任何人都知道Apple是否已将此确认为错误。

此时我们不打算将此应用转换为iOS 7的外观,因此这不是一个选项。 THX。

1 个答案:

答案 0 :(得分:2)

来自Apple官方文档:

  

在iOS 6中,tintColor着色了导航栏,标签的背景   栏,工具栏,搜索栏和范围栏。为酒吧背景着色   在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
}