• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

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

[复制链接]
菜鸟教程小白 发表于 2022-12-11 17:05: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 的状态栏保持白色?



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/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap