【发布时间】:2020-01-21 00:28:45
【问题描述】:
我正在尝试在我的应用程序中实现暗模式切换 - 这将涉及当 UIViewController 已经在屏幕上可见时将导航栏颜色切换为黑色。我知道如何通过设置来做到这一点
UINavigationBar.appearance().barTintColor = .black
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().titleTextAttributes = [NSAttributedString.Key.foregroundColor: UIColor.white]
UINavigationBar.appearance().isTranslucent = false
但是,在 AppDelegate 中,这在这种情况下不起作用,因为它需要动态完成。
我也尝试过navigationController?.navigationBar.barTintColor = UIColor.white,但这也不起作用。
更新:
我认为很多回复都与这个问题的目的混淆了——这与刚刚发布的 iOS13 暗模式完全无关——这是我想添加到我的应用程序中的独立暗模式功能(类似于 Messenger 等在 iOS 13 发布之前在应用内提供暗模式的其他应用程序)。我需要做的是在 UINavigationBar 已经显示在屏幕上之后动态更新它的颜色,就像我可以通过 view.backgroundColor = .white 更改视图的背景颜色一样,这将实时更新颜色在屏幕上。
【问题讨论】:
-
您可以查看iOS13中UINavigationBar的变化sarunw.com/posts/uinavigationbar-changes-in-ios13.html
标签: ios swift uiviewcontroller uinavigationcontroller uinavigationitem