【问题标题】:Prevent changing status bar when opening page with popover使用弹出框打开页面时防止更改状态栏
【发布时间】:2020-05-20 13:37:30
【问题描述】:

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

这是截图 link

这是打开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
 }

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

【问题讨论】:

  • 你能添加你得到的结果的截图吗?
  • 谢谢,我在第一篇文章中添加了

标签: swift popover


【解决方案1】:

如果您尝试为整个应用设置状态栏,您只需:

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

【讨论】:

  • 整个app的状态栏没问题,就是这个popover页面有问题
  • 如答案所述,如果您需要保持不变,请使用它。它会自动解决您的问题。
  • 这个配置已经设置了,我还是有这个问题
  • 您是否检查了答案中的第 1 步?
  • 是的,当它为NO时,状态栏在整个应用程序中是隐藏的(看不到),当它是YES时,我在弹出页面中遇到同样的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-06
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-25
相关资源
最近更新 更多