首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >UIStatusBarStyle在Swift中不起作用

UIStatusBarStyle在Swift中不起作用
EN

Stack Overflow用户
提问于 2014-06-16 08:47:07
回答 8查看 60.5K关注 0票数 86

我正在尝试将我的Swift应用程序中的状态栏颜色更改为白色,但遇到了麻烦。我在一个NavigationController中嵌入了3个ViewControllers (这是问题所在吗?我已经尝试将代码放在NavigationController类中。)我已经在我的AppDelegate.swift文件的didFinishLaunchingWithOptions中尝试了以下两段代码,但都不起作用。

代码语言:javascript
复制
application.statusBarStyle = .LightContent

代码语言:javascript
复制
UIApplication.sharedApplication().statusBarStyle = .LightContent

博士们所要说的就是UIBarButtonStyle是一个Int,它给了我这个枚举代码片段,这对我的实现一点帮助都没有。

代码语言:javascript
复制
enum UIStatusBarStyle : Int {
    case Default
    case LightContent
    case BlackOpaque
}

我遗漏了什么?

EN

回答 8

Stack Overflow用户

发布于 2015-09-25 17:44:28

您必须设置:

navigationController.navigationBar.barStyle = .black

文本将显示为白色

票数 37
EN

Stack Overflow用户

发布于 2015-09-28 11:47:46

对于iOS9.x和Xcode7,只需将以下代码放入AppDelegate.swift

代码语言:javascript
复制
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {

    UINavigationBar.appearance().barStyle = .Black

} 

对于UINavigationController中的所有视图控制器,这会自动将状态栏的样式转换为.Lightcontent

(另外,从Info.plist中删除View controller-based status bar appearance,以取消您可能也看到的警告!)

票数 21
EN

Stack Overflow用户

发布于 2016-09-17 23:44:57

在Swift 3中,状态栏样式已更改为UIViewController中的计算属性,您可以按如下方式覆盖该属性:

代码语言:javascript
复制
override var preferredStatusBarStyle: UIStatusBarStyle {
   return .lightContent //or default
} 
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24235401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档