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() -> UIStatusBarStyle {
return UIStatusBarStyle.default;
}
</code></pre>
<p>我使用 Xcode 7.3.1 和 swift 2.3 创建了一个新的选项卡式应用程序。我有两个选项卡,其中包含与 FirstViewController 和 SecondViewController 关联的类。在 FirstViewController 我添加了以下方法:</p>
<pre><code>override func preferredStatusBarStyle() -> UIStatusBarStyle {
return UIStatusBarStyle.Default;
}
</code></pre>
<p>并且在 SecondViewController 中,我将背景更改为黑色,并添加了以下方法:</p>
<pre><code>override func preferredStatusBarStyle() -> 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]