swift 首选项状态栏iOS 13中的隐藏问题

tzdcorbm  于 2023-02-21  发布在  Swift
关注(0)|答案(3)|浏览(180)

大家好,我试图隐藏我的statusBar在一个View Controller,但它似乎不工作..我使用的函数:

override var prefersStatusBarHidden: Bool {
         return true
    }

我还将plist文件中的**View controller-based status bar appearance设置为YES**
我的状态栏不想隐藏...我哪里做错了?

agxfikkp

agxfikkp1#

看起来您试图在单个ViewController中专门隐藏状态栏。
为此,您需要在ViewController中包含以下内容
self.modalPresentationCapturesStatusBarAppearance = true

override var prefersStatusBarHidden: Bool {
      return true
}

我还在我的.plist中添加了View controller-based status bar appearance,并将其设置为YES
在最新iOS 13上测试。

jdzmm42g

jdzmm42g2#

如果目标视图控制器嵌入在另一个容器视图控制器(如UINavigationController)中,则需要对该容器视图控制器进行子类化,并覆盖其childForStatusBarHidden以返回目标视图控制器。

r1zk6ea1

r1zk6ea13#

如果您可以查看此内容,则应覆盖childForStatusBarHidden和childForStatusBarStyle。

class CCNavigationController: UINavigationController {
    override var childForStatusBarHidden: UIViewController? {
        return self.topViewController
    }
    
    override var childForStatusBarStyle: UIViewController? {
        return self.topViewController
    }
}

相关问题