Swift 3 - 如何在使用全屏时隐藏状态栏

Mar*_*cus 5 modal-dialog ios segue swift

我正在开发一个 swift 应用程序,当我在我的模态上使用全屏演示时,我找不到如何隐藏状态栏。

但是,我将这行代码放在我的 Modal View Controller 中:

override var prefersStatusBarHidden: Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)

如果我创建一个不是模态的转场,或者如果我创建一个模态但不是全屏演示的转场,它就可以工作。

我在互联网上搜索如何解决它,我发现有人遇到了同样的问题,但没有解决方案。

此外,当我使用 Over Full Screen 选项时,我无法更改状态栏的颜色。我不明白为什么?我认为是有关系的。

谢谢你的帮助!

bnu*_*sey 5

要在执行全屏模式时隐藏状态栏,您需要在 viewDidLoad 中设置:

override func viewDidLoad() {
    super.viewDidLoad()    
    modalPresentationCapturesStatusBarAppearance = true
}
Run Code Online (Sandbox Code Playgroud)

然后执行标准方法隐藏状态栏:

override var prefersStatusBarHidden: Bool {
    return true
}
Run Code Online (Sandbox Code Playgroud)


byJ*_*van 0

我们可以preferredStatusBarStyle像您正确完成的那样从单个视图控制器进行覆盖。

\n\n

除此之外,插入一个名为 \xe2\x80\x9c查看基于控制器的状态栏外观\xe2\x80\x9d 的新键,并将值设置为 NO info.plist。\n在此输入图像描述

\n\n

通过禁用\xe2\x80\x9cView基于控制器的状态栏外观\xe2\x80\x9d,您可以使用以下代码设置状态栏样式。

\n\n
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; //objective-c\n
Run Code Online (Sandbox Code Playgroud)\n\n

因此它应该解决“当我使用全屏选项时我无法更改状态栏的颜色”

\n