我正在尝试在我的应用中实现暗黑模式的切换 - 这将涉及在 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来更改视图的背景颜色,并且这将实时更新屏幕上的颜色。