在iOS 10中,可以使用以下代码行为所有应用设置导航栏的色调颜色:
UINavigationBar.appearance().barTintColor = UIColor.green
然而,当在iOS 11中完成相同操作时,它似乎也会影响系统视图。例如,在使用以下代码显示UIActivityViewController时:
let titleText = "SOME TITLE"
let urlStr = "https://google.com"
let activityItems = [titleText,urlStr]
let activityViewController = UIActivityViewController(activityItems: activityItems, applicationActivities: nil)
选择“添加到备注”选项后,导航栏将显示先前设置的颜色(本例中为绿色)
我想问一下,这是一个错误还是有意?
(我已经在一个多月前向苹果提交了一份错误报告,但没有收到回复)
以下是该问题的屏幕截图:
答案 0 :(得分:4)
为什么不简单地子类UINavigationController
并设置外观代理呢?
UINavigationBar.appearance(whenContainedInInstancesOf: [YourUINavigationControllerSubclass.self]).barTintColor = UIColor.green
这不那么黑,它会在没有任何负面影响的情况下解决问题。
您可以找到关于主题here的更多信息。