Ios 为什么我不能隐藏状态栏?

Ios 为什么我不能隐藏状态栏?,ios,swift,Ios,Swift,我使用以下代码行隐藏状态栏: view.window?.windowLevel=UIWindowLevel状态栏 让我吃惊的是,这行代码在视图的任何生命周期方法中都不起作用:viewDidLoad,viewwillbeloen:。然而,当我创建一个按钮并将其连接到一个动作方法时,上面的代码可以完美地工作,并将状态栏隐藏在窗口后面。我希望能够在viewDidLoad中调用view.window?.windowLevel=UIWindowLevelStatusBar。是否有人可以帮助我理解为什么它在

我使用以下代码行隐藏状态栏:

view.window?.windowLevel=UIWindowLevel状态栏


让我吃惊的是,这行代码在视图的任何生命周期方法中都不起作用:viewDidLoad,viewwillbeloen:。然而,当我创建一个按钮并将其连接到一个动作方法时,上面的代码可以完美地工作,并将状态栏隐藏在窗口后面。我希望能够在viewDidLoad中调用view.window?.windowLevel=UIWindowLevelStatusBar。是否有人可以帮助我理解为什么它在上述视图生命周期方法中不起作用?

只有在info.plist中将基于视图控制器的状态栏外观设置为“是”时,ViewController才能调整状态栏。否则,它将由plist或proj文件中的全局参数设置。

在viewDidLoad或ViewView中都不会出现视图控制器位于视图层次结构中,因此view.window为零

您可以使用ViewDidDisplay解决此问题,或者改用UIApplication.shared.delegate.window访问窗口


一般来说,更改主窗口的级别不是一个好主意。

如果您只想隐藏状态栏,请使用:


我没有试图调整状态栏。我正在尝试将应用程序窗口设置为与状态栏相同的级别。我还将基于视图控制器的状态栏外观更改为“是”,但未发生任何情况。如果更改窗口级别是一种错误做法,我应如何在模式显示的视图控制器上隐藏状态栏?@a.Jam您可以使控制器隐藏状态栏,或者创建一个新窗口并在其中显示控制器/视图。如何使视图控制器隐藏状态栏?有没有内置的方法,因为我做了一些研究,没有发现任何东西…。。@a.Jam非常感谢!
    [[UIApplication sharedApplication] setStatusBarHidden:YES]