【问题标题】:Can see Status Bar space but not information in iOS Swift可以在 iOS Swift 中看到状态栏空间但看不到信息
【发布时间】:2017-02-08 01:49:49
【问题描述】:

我添加导航控制器(第二视图)并添加一个 UIViewController(第三视图)作为根视图控制器。
然后我将 segue 从另一个 UIViewController(1st View) 连接到 Navigation Controller(2nd View)。
因此,当呈现视图时,我可以看到带有状态栏空间的导航栏。
但是状态栏中不显示运营商,电池,时间信息等信息。 (我将导航颜色更改为粉红色以向您显示问题。
蓝色部分是导航栏的标题视图。)

所以我尝试了 2 个解决方案。

首先,我想到了StatusBar Color的问题。但事实并非如此。

  UIApplication.shared.statusBarStyle = .default

其次,我尝试了以下代码进行显示。也不是。

override var prefersStatusBarHidden: Bool {
    return false

}

UIApplication.shared.setStatusBarHidden(false, with: UIStatusBarAnimation.none)

我需要解决这个状态栏不显示的问题。
我可以看到状态栏空间,但看不到信息。

【问题讨论】:

  • 可以加个截图吗?所以基本上你只是想隐藏你的状态栏?
  • @prettyitgirl.com 我想显示状态栏。通常,它显示了。这是我第一次遇到这样的问题。
  • "然后我将 segue 连接到导航控制器" 这是什么类型的 segue?知道这一点非常重要。如果它是嵌入 segue,则可能是问题的原因。
  • @matt 它是“模态存在的”segue
  • 但不是全屏演示?

标签: ios swift statusbar


【解决方案1】:

有很多方法可以在 iOS 中切换状态栏的颜色和可见性。

类似的问题可能会为您提供正确答案:

How to change Status Bar text color in iOS 7

简而言之,如果您想在每个屏幕之间切换,请按照以下步骤操作:

  1. 在您的 info.plist 中,添加这个新密钥:

View controller-based status bar appearance 和值应该是NO

  1. 在您的viewWillAppear 中,使用您发布的代码切换状态栏:

UIApplication.shared.statusBarStyle = .lightContent - 白色 要么 UIApplication.shared.statusBarStyle = .default - 黑色

编辑: 初始 ViewController --> 模态呈现 --> NavigationController + ViewController。

这就是您设置屏幕的方式,对吧?如果是这样,

  • 您可以在 Interface Builder 的 NavigationController 属性中设置状态栏。
  • 并在viewWillAppear3rd ViewController 中切换状态栏的可见性和/或颜色。

【讨论】:

  • 它没有用。我认为这不是颜色问题。
  • 如果您想切换单个视图控制器的状态栏,则应将基于视图控制器的状态栏外观设置为 YES。
【解决方案2】:

我建议你查看Debug View Hierarchy

根据我在以前项目中的经验,如果我无法针对 UI 相关问题提出基于代码的解决方案,我可以做的最简单的调试技术是在运行时检查视图层次结构。

查看导航控制器视图是否阻塞了可能隐藏状态栏的主视图,如果是,请按照自己的方式解决。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2015-02-05
    • 1970-01-01
    • 2011-07-29
    • 1970-01-01
    • 2014-04-05
    • 2017-09-09
    • 2021-06-07
    • 2014-10-18
    • 2012-04-22
    相关资源
    最近更新 更多