gpt4 book ai didi

swift - 停止更改 iOS 13 中的状态栏

转载 作者:行者123 更新时间:2023-12-04 15:29:05 27 4
gpt4 key购买 nike

我的应用程序中已经有一个明暗主题。我也支持iOS 13的深色模式,问题是,即使选择了应用的浅色或深色模式,更改iOS主题也会导致状态栏颜色发生变化,所以当ios深色模式打开时,状态栏在我的应用程序中的浅色主题。
我试图通过这段代码来阻止它,但在我的情况下它不起作用:

override var preferredStatusBarStyle: UIStatusBarStyle {
switch Appearance.theme {
case .dark:
return .lightContent
case .light:
if #available(iOS 13.0, *) {
return .darkContent
} else {
return .default
}
case .apple:
return .default
}
}

我在他的拆分 View Controller 中添加了它,我也在每个 Controller 中添加了它,但没有任何变化。有谁知道如何解决它?
我也有同样的问题 UITabbarUISegmentedControl
不知何故,我应该说当我的应用程序中的明暗模式被选中时,更改 iOS 主题应该会影响应用程序元素(状态栏、标签栏、UISegmentedControl)

非常感谢

最佳答案

您可以使用 overrideUserInterfaceStyle强制 Controller 采用 iOS13 中的特定样式.

为了解决你的问题,你的代码应该是这样的:

override var preferredStatusBarStyle: UIStatusBarStyle {
switch Appearance.theme {
case .dark:
return .lightContent
case .light:
if #available(iOS 13.0, *) {
return .darkContent
} else {
return .default
}
case .apple:
return .default
}
}


override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
if #available(iOS 13.0, *) {
switch Appearance.theme {
case .dark:
overrideUserInterfaceStyle = .dark
case .light:
overrideUserInterfaceStyle = .light
case .apple:
overrideUserInterfaceStyle = .unspecified
}
}
}

关于swift - 停止更改 iOS 13 中的状态栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58035384/

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