OGeek|极客世界-中国程序员成长平台

标题: ios - swift ios试图改变某些VC的状态栏颜色 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-11 17:05
标题: ios - swift ios试图改变某些VC的状态栏颜色

在我的应用程序中,我有 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 的状态栏保持白色?



Best Answer-推荐答案


尝试在您的 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 中添加了两个按钮。一个按钮以模态方式呈现 Controller ,另一个按钮通过按下呈现。当我以模态方式呈现 View 时,“preferredStatusBarStyle”工作,但是当我通过推送呈现时,我需要添加以下代码行:

self.navigationController?.navigationBar.barStyle = .Black

关于ios - swift ios试图改变某些VC的状态栏颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38546787/






欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) Powered by Discuz! X3.4