UINavigationBar外观色调会影响系统窗口,bug还是有意?

时间:2017-09-04 01:28:03

标签: ios11

在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)

选择“添加到备注”选项后,导航栏将显示先前设置的颜色(本例中为绿色)

我想问一下,这是一个错误还是有意?

(我已经在一个多月前向苹果提交了一份错误报告,但没有收到回复)

以下是该问题的屏幕截图:

enter image description here

1 个答案:

答案 0 :(得分:4)

为什么不简单地子类UINavigationController并设置外观代理呢?

UINavigationBar.appearance(whenContainedInInstancesOf: [YourUINavigationControllerSubclass.self]).barTintColor = UIColor.green

这不那么黑,它会在没有任何负面影响的情况下解决问题。

您可以找到关于主题here的更多信息。