我添加导航控制器(第二视图)并添加一个UIViewController(第三视图)作为根视图控制器
然后我从另一个UIViewController(第一个视图)将segue连接到导航控制器(第二个视图)
因此,当显示视图时,我可以看到带有状态栏空间的导航栏
但是状态栏中没有显示载体,电池,时间信息等信息。
(我将导航颜色更改为粉红色以显示问题。
蓝色部分是导航栏的标题视图。)
所以我尝试了2种解决方案。
首先,我认为StatusBar Color问题。但事实并非如此。
UIApplication.shared.statusBarStyle = .default
其次,我尝试使用以下代码进行显示。它也不是。
override var prefersStatusBarHidden: Bool {
return false
}
和
UIApplication.shared.setStatusBarHidden(false, with: UIStatusBarAnimation.none)
我需要用状态栏来解决这个不显示问题 我可以看到状态栏空间而不是信息。
答案 0 :(得分:0)
有很多方法可以在iOS中切换状态栏的颜色和可见性。
类似的问题以及可能的正确答案:
How to change Status Bar text color in iOS 7
简而言之,如果您想在每个屏幕之间切换,请按照以下步骤操作:
info.plist
中,添加以下新密钥: View controller-based status bar appearance
,值应为NO
。
viewWillAppear
中,使用您发布的代码切换状态栏: UIApplication.shared.statusBarStyle = .lightContent
- 白色
要么
UIApplication.shared.statusBarStyle = .default
- 黑色
编辑: 初始ViewController - >以模态呈现 - > NavigationController + ViewController。
这就是你设置屏幕的方式,对吗?如果是的话,
viewWillAppear
的{{1}}旁边切换状态栏的可见性和/或颜色。答案 1 :(得分:0)
我建议您查看Debug View Hierarchy。
根据我之前项目的经验,如果我无法在UI相关问题上提出基于代码的解决方案,我可以做的最简单的调试技术是在运行时检查视图层次结构。
查看导航控制器视图是否阻止可能隐藏状态栏的主视图,如果是,请按照您的方式解决问题。
我希望它有所帮助。