菜鸟教程小白 发表于 2022-12-11 17:05:25

ios - swift ios试图改变某些VC的状态栏颜色


                                            <p><p>在我的应用程序中,我有 4 个 ViewController,其中两个我将状态栏从白色更改为黑色,如下所示:</p>

<pre><code>override func viewWillAppear(animated: Bool) {
      super.viewWillAppear(animated)

      UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
    }

    override func viewWillDisappear(animated: Bool) {
      super.viewWillDisappear(animated)

      UIApplication.sharedApplication().statusBarStyle = .LightContent
    }
</code></pre>

<p>问题是,如果我在两个都有状态栏上方代码的 ViewController 之间切换,首先会变成黑色,这是正确的,但是当进入另一个 ViewController 时,它又会变成白色。</p>

<p>如何让某些 ViewController 的状态栏保持白色?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>尝试在您的 VC 中添加以下方法。使用 .default 或 .lightContent 更改状态栏颜色。我使用 Xcode 8 和 swift 3 进行了测试:</p>

<pre><code>override func preferredStatusBarStyle() -&gt; UIStatusBarStyle {
    return UIStatusBarStyle.default;
}
</code></pre>

<p>我使用 Xcode 7.3.1 和 swift 2.3 创建了一个新的选项卡式应用程序。我有两个选项卡,其中包含与 FirstViewController 和 SecondViewController 关联的类。在 FirstViewController 我添加了以下方法:</p>

<pre><code>override func preferredStatusBarStyle() -&gt; UIStatusBarStyle {
    return UIStatusBarStyle.Default;
}
</code></pre>

<p>并且在 SecondViewController 中,我将背景更改为黑色,并添加了以下方法:</p>

<pre><code>override func preferredStatusBarStyle() -&gt; UIStatusBarStyle {
    return UIStatusBarStyle.LightContent;
}
</code></pre>

<p>最后,我在 FirstViewController 中添加了两个按钮。一个按钮以模态方式呈现 Controller ,另一个按钮通过按下呈现。当我以模态方式呈现 View 时,“preferredStatusBarStyle”工作,但是当我通过推送呈现时,我需要添加以下代码行:</p>

<pre><code>self.navigationController?.navigationBar.barStyle = .Black
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - swift ios试图改变某些VC的状态栏颜色,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/38546787/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/38546787/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - swift ios试图改变某些VC的状态栏颜色