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

发布时间: 2017/3/6 23:32:25
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

在我的应用程序,我有 4 ViewController 和在其中两个我改变状态栏从白色到黑色像这样︰

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
    }

问题是如果之间切换两个 ViewController,大家都有状态栏上面的代码首先将更改为黑色,是正确的但是然后它更改为白色再次进入其他 ViewController 时。

我怎能状态栏白色上某些 ViewController?

解决方法 1:

尝试在你的 VC 中添加下面的方法。使用.default 或.lightContent 来更改状态栏颜色。我测试了使用 Xcode 8 和 swift 3:

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.default;
}

我使用 Xcode 7.3.1 创建一个新的选项卡式应用程序和 swift 2.3。我有两个选项卡与类相关联的 FirstViewController 和 SecondViewController。FirstViewController 在我添加了下面的方法︰

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.Default;
}

在 SecondViewController,我改变了背景为黑色,和我添加下面的方法︰

override func preferredStatusBarStyle() -> UIStatusBarStyle {
    return UIStatusBarStyle.LightContent;
}

最后,我在 FirstViewController 中添加两个按钮。一个按钮窗体当前控制器和其他按钮目前通过推送。面对视图窗体 'preferredStatusBarStyle' 工作,但当我提出了一种通过推我需要添加以下代码行︰

self.navigationController?.navigationBar.barStyle = .Black
官方微信
官方QQ群
31647020