gpt4 book ai didi

swift - 状态栏外观无法正常工作 - 使用 iOS 13 深色模式

转载 作者:行者123 更新时间:2023-12-05 01:39:06 26 4
gpt4 key购买 nike

我的应用程序为预登录屏幕设置了默认状态栏样式。- 登录后,应用程序使用 lightContent 样式作为整个应用程序的状态栏。

在 iOS 12 之前一切正常。它开始在 iOS 13 中产生问题(仅当启用深色模式时)

以下是我已经尝试过但仍然无法正常工作的方法。

  • 我确实将 UIUserInterfaceStyle 设置为 Light
  • 我确实将 UIViewControllerBasedStatusBarAppearance 设置为 YES
  • 然后我在单独的 View Controller 中尝试了下面的代码

覆盖 var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent }

  • 还在类文件的 viewDidLoad() 中添加了这一行。

setNeedsStatusBarAppearanceUpdate()

但是,我仍然没有摆脱这个与状态栏相关的东西。我只是需要我的状态栏在登录前在屏幕上变暗,一旦用户登录,它应该亮起。

整个应用程序应该具有相同的深色和浅色模式 UI。 (因为它适用于 iOS 13 以下的操作系统)现在工作正常,但只有状态栏在改变颜色。

注意:禁用深色模式时一切正常。只有在启用深色模式时才会产生问题。

根据我的理解,我在 Xcode 中创建了一个新项目并添加了 3 个具有不同状态栏外观的屏幕。

工作案例
VC1 - 默认样式
VC2 - 默认风格
VC3 - LightContent 风格

工作案例
VC1 - LightContent 样式
VC2 - LightContent 样式
VC3 - 默认样式

不工作(失败)案例
VC1 - 默认样式
VC2 - LightContent 样式
VC3 - 默认样式

我的假设是 - 如果您在应用程序中使用任何一种样式,无论设备是深色模式还是浅色模式,它都可以正常工作。但是,如果您将 DefaultLightContent 两者结合用于应用中的状态栏外观,那么在启用深色模式时它不会按预期工作。

任何人都可以帮助我解决状态栏样式的这种行为吗?

这是我的三个 View Controller 文件。它只是将一个 Controller 推向另一个 Controller 。它是我上面提到的演示项目的文件。哪个有失败案例。 view controllers

当深色模式关闭时:即使我在 VC2 中覆盖状态栏样式,我也始终使用默认状态栏样式。
当深色模式关闭时:即使我在 VC1 和 VC3 中重写状态栏样式,我总是会得到 lightContent 状态栏样式。

这是我的 info.plist 文件 Info.plist file of my demo project

最佳答案

在您的例子中,导航 Controller 负责维护状态栏样式。因此,您需要对导航 Controller 进行子类化并覆盖它的 preferredStatusBarStyle。

关于swift - 状态栏外观无法正常工作 - 使用 iOS 13 深色模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59026900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com