刚刚下载了新的xCode 10.0,看到旧的statusBarStyle自iOS 9.0以来就被弃用了.

Warning: Setter for 'statusBarStyle' was deprecated in iOS 9.0: Use -[UIViewController preferredStatusBarStyle]

Deprecated code:

我try 使用self.preferredStatusBarStyle,但发现该属性只是一个getter.有人知道怎么设定statusBarStyle吗?


编辑

我想更改函数中的statusBarStyle,用户可以在不同的主题之间切换.例如:

func changeStatusBar(toDarkMode: Bool) {
    if toDarkMode {
        // Set to light statusBarStyle
    } else { 
        // Set to default
    }
}

推荐答案

使用与现在相同的代码设置darkMode变量,然后在系统预期的计算变量中使用它:

var darkMode = false
override var preferredStatusBarStyle : UIStatusBarStyle {
    return darkMode ? .default : .lightContent
}

根据上下文的不同,可能需要强制刷新屏幕才能生效.您可以通过以下电话来实现这一点:

setNeedsStatusBarAppearanceUpdate()

Swift相关问答推荐

如何访问用户选定目录下的(只读)文件?

如何将CodingKeys作为数组而不是枚举传递到类外部的函数中?

在SWIFT中使用Objective-C struct 时出错(在作用域中找不到类型)

RxSwift .debounce,.throttle用于分页

仅使用@MainActor注释类的部分时的并发问题

UIView.convert(_ point:to:)的意外行为

UIBezierPath() 和 DragGesture:连接点创建角而不是曲线

SwiftUI 无法在实时活动中显示 SpriteView

如何在 SwiftUI 中创建条件内容?

Swiftui 无法从核心数据中获取数据

如何删除 macOS 中的所有命令?

状态变量更改后,SwiftUI 视图不会更改

Vapor, fluent 使用 PostgreSQL 保存/创建复杂模型

如何使用 Date.ParseStrategy 在 Swift 5.6 中将字符串解析为日期?

找不到目标AAA的 SPM 工件 - 仅限 Xcode 13.3

在 Swift 中将两个字节的 UInt8 数组转换为 UInt16

获取设备图像比例(例如@1x、@2x 和@3x)

在 Swift 中为 UIPickerView 设置默认值?

如何在 Swift 中从字符串创建类的实例

Swift:长按手势识别器 - 检测轻按和长按