首页 > 解决方案 > 使用弹出框打开页面时防止更改状态栏

问题描述

我用弹出框以编程方式打开一个页面,应用程序的主题很轻,所以状态栏标签是黑色的。但是当弹出窗口打开时,状态栏的标签也会变白,在状态栏中什么也看不到。

这是截图 链接

这是打开popover的代码

 func showlistCard() {
     let vc = ContainerlistCard()
     vc.modalPresentationStyle = .popover
     present(vc, animated: true, completion: nil)
 }

然后我搜了一下,发现可以用这些代码改变状态栏的样式

 public override var preferredStatusBarStyle: UIStatusBarStyle {
       return .default
  }

并且在viewWillAppear

 if #available(iOS 13.0, *) {
      overrideUserInterfaceStyle = .light
 }

我在两个页面中都添加了它,打开弹出框的页面和打开的页面,它们都不适合我。有什么建议吗?非常感谢

标签: swiftpopover

解决方案


如果您尝试为整个应用程序设置状态栏,您需要做的就是:

  1. 在 Info.plist 中设置View controller-based status bar appearanceNO
  2. XCode 选择项目的左侧 > 目标 > 选择您的项目 > 在常规 > 部署信息 > 选择状态栏样式:轻

推荐阅读