swift - iOS 13 导航栏.barStyle

标签 swift statusbar navigationbar ios13

我正在为 NavigationBar 应用新的外观 API,但我正在努力处理状态栏内容(文本)。在 Info.plist 上,我强制使用浅色模式,因为大多数应用程序是白色的,但在我的一个 viewController 中,导航栏是深蓝色(几乎是黑色),因此该栏中的内容需要是白色的。

我曾经在 iOS 12.4 及更高版本上使用 navigationBar.barStyle = .black,但对于 iOS 13 及更高版本则不然。不再工作了。请遵循我尝试过但失败的代码。

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    if let navController = self.navigationController {
        let navBarAppearance = navController.navigationBar.standardAppearance.copy()
        navBarAppearance.configureWithOpaqueBackground()
        navBarAppearance.shadowImage = UIImage()
        navBarAppearance.backgroundColor = LayoutBootstrap.colors.primary.solid // Dark blue

        navController.navigationBar.standardAppearance = navBarAppearance
        navController.navigationBar.barStyle = .black
    }
}

Status bar content is black

PS:在 didFinishLaunchingWithOptions 上,我已经调用了 NavigationBar 和 Items

的默认配置外观

大家有什么建议吗?

提前致谢。

最佳答案

您还需要设置状态栏样式

UIApplication.shared.statusBarStyle = .lightContent

关于swift - iOS 13 导航栏.barStyle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59033999/

相关文章:

swift - 如何使用 Swift 在 Apple Watch 上添加下拉刷新功能

Android 如何拦截状态栏通知?

html - 导航栏事件链接背景不起作用

ios - Xcode 11.4。导航的标题颜色从 Storyboard中变为黑色

ios - 在 Root View Controller 上看不到顶部导航栏

swift - Xcode 8 - 如何将 .app 文件提供给其他人进行测试

ios - 如何防止 UIPageViewController 的 setViewControllers 方法崩溃?

android - 如何使用 SystemBarTint 库使 Android 状态栏的颜色与操作栏的颜色匹配?

ios - 'observeSingleEvent(: with:)

IOS 7状态栏不显示?