菜鸟教程小白 发表于 2022-12-12 10:58:05

ios - 在 iOS 9 的一个 View Controller 上隐藏状态栏


                                            <p><p>我有 <code>ViewController1</code>,它使用 segue 来显示 <code>ViewController2</code>。它们都是 UINavigationController 的一部分。</p>

<p>我在 <code>ViewController2</code> 上有一个按钮,它应该隐藏状态栏。</p>

<p>我查看了几个有关此问题的 Stackoverflow 问题,发现以下问题,但仍然无法正常工作:</p>

<ul>
<li><p>在 Info.plist 中将“基于 Controller 的状态栏外观”设置为 <code>true</code></p></li>
<li><p>在 ViewController2 中,我添加了一个方法 <code>override func prefersStatusBarHidden() -> Bool</code> 并返回 <code>true</code> 或 <code>false</code>(基于按钮是否被点击)</p></li>
<li><p>当一个按钮被点击以强制状态栏改变被拾取时,我调用 <code>setNeedsStatusBarAppearanceUpdate</code>。</p></li>
<li><p>我读到了 <code>modalPresentationCapturesStatusBarAppearance</code>(需要启用它)。我尝试在 ViewController2 上将其设置为 <code>true</code> <code>prepareForSegue</code></p></li>
</ul>

<p>但是,状态栏仍然显示,prefersStatusBarHidden 从未被调用过。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>问题在于您的 ViewController 位于 UINavigationController 接口(interface)中。因此,运行时向导航 Controller 咨询有关状态栏的信息,而不是您的 ViewController 。</p>

<p>但是,导航 Controller 会依次咨询您的 ViewController ,因此只需说 <code>self.navigationController?.setNeedsStatusBarAppearanceUpdate()</code> 即可设置滚动。它对我来说很好用:</p>

<p> <a href="/image/zOowN.gif" rel="noreferrer noopener nofollow"><img src="/image/zOowN.gif" alt="enter image description here"/></a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 在 iOS 9 的一个 ViewController 上隐藏状态栏,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/36671257/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/36671257/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 在 iOS 9 的一个 View Controller 上隐藏状态栏