ios - Swift 3 UIStatusBarStyle 不适用于 UINavigationController 中的单独 ViewController

标签 ios swift uiviewcontroller

Swift 3 中的某些内容发生了变化。 我曾经能够在每个 ViewController 上将状态栏颜色从默认更改为亮起,即使它被包裹在 UINavigationController 中也是如此。

现在我有一个 UINavigationController 来管理我所有的 UIViewController,当我在每个 ViewController 上执行此操作时,它不会工作:

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

另一方面,当我将此代码插入我的 UINavigationCotroller 子类时,它可以工作,但我根本无法动态更改它,这意味着我所有的 ViewControllers 现在有 .lightContent,我无法更改它。

这个可怕的变化有解决方案吗?

谢谢:)

最佳答案

您可以通过将 UIApplication.shared.statusBarStyle = .lightContent 添加到您的 didFinishLaunchingWithOptions 函数内的 AppDelegate.swift 文件,将其动态更改为您应用中的所有 View 。您还需要转到 info.plist 文件并添加 bool 值 View controller-based status bar appearance 并将其设置为 NO

关于ios - Swift 3 UIStatusBarStyle 不适用于 UINavigationController 中的单独 ViewController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39686773/

相关文章:

ios - 更改 setLineDash :count:phase: to an arc in ios core graphics 中的模式

ios - 什么时候可以使用@IBOutlets?

ios - 如何在启用 #if canImport() 的情况下添加可选委托(delegate)?

iOS UINavigationController - 从导航堆栈中删除 View Controller 确实会释放它

ios - 如何在 ios 中获取像谷歌地图持续时间文本格式这样的持续时间?

ios - 如何使用相对于容器调整大小的项目初始化 UICollectionViewController?

ios - Swift - 如何在设置后更改 UIButton 的 NSMutableAttributedString 的颜色

ios - UIImageView:如何显示缩放图像?

ios - 点击按钮时无法识别的选择器错误

iphone - 如何将字符串值从一个.m文件传递到另一个.m文件