ios - 为导航栏设置色调颜色恢复为 iOS 6 蓝色

标签 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 弹出窗口,这也发生在那里。

我想知道是否有 1.) 其他人遇到过这个问题 2.) 如果有,您找到解决方法了吗 3.) 是否有人知道 Apple 是否已确认这是一个错误。

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

最佳答案

来自苹果官方文档:

In iOS 6, tintColor tinted the background of navigation bars, tab bars, toolbars, search bars, and scope bars. To tint a bar background in iOS 7, use the barTintColor property instead.

您应该引用完整的 UI 转换指南,了解哪些 UI 元素在 iOS 7 中以不同的方式表现。如果您想要同时支持两者,您可以检查 iOS 版本并为每个版本放置不同的代码:

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

关于ios - 为导航栏设置色调颜色恢复为 iOS 6 蓝色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19866093/

相关文章:

iphone - 如何使用翻转过渡从 UIView 转到带有 NavigationController 的 TableViewController?

objective-c - 如何将文件拖放到 NSTextField 上?

iphone - 我的类(class)实现不完整?

ios - Swift 项目中的 Cocoa pods objective c 文件。桥接问题

iphone - 方法的返回值

iphone - 续订过期的配置文件时出现问题

iphone - IOS需要根据关键价格对字典值数组进行排序

ios - 如何在不使用属性的情况下设置 MKMapView map 类型?

ios - CredStore 执行查询错误

c# - Xamarin 表格 : Resource strings