【问题标题】:How to updated a deprecated statusBarStyle from iOS 9 [duplicate]如何从 iOS 9 更新已弃用的 statusBarStyle [重复]
【发布时间】:2019-02-17 16:57:57
【问题描述】:

我正在为 iOS 12 更新 iOS 应用并遇到此警告。

我正在为我的应用更改 AppDelegate.swift 文件中的状态栏。这可以在 didFinishLaunchingWithOptions 函数中找到

UIApplication.shared.statusBarStyle = UIStatusBarStyle.lightContent

我收到一条警告,内容如下:

“statusBarStyle”的 Setter 在 iOS 9.0 中已弃用:使用 -[UIViewController 首选状态栏样式]

我认为这将是一个简单的更新,但我还没有找到适合我的更新。

我尝试在主 VC 上设置这个:

// set the status bar color
override var preferredStatusBarStyle : UIStatusBarStyle {
    return .lightContent
}

但在灯光模式下不显示。

当我尝试自己键入覆盖时,这就是我得到的代码提示。

【问题讨论】:

  • 显示你迄今为止尝试过的内容。
  • @rmaddy,我发布了我尝试过的代码。此方法似乎在 Swift 3 中有效,但我不确定它在 Swift 4 中是否有效。当我尝试键入新的覆盖变量时,我没有收到代码提示。

标签: swift ios9 uistatusbar


【解决方案1】:

通过 UIApplication documentation,似乎没有用于设置状态栏样式的替代符号。相反,我会按照警告的指示去做:Use -[UIViewController preferredStatusBarStyle]

您可以设置状态栏背景颜色,但这似乎不是您想要的。

鉴于限制,Apple 似乎希望我们让视图控制器设置状态栏样式。从设计的角度来看,我不确定为什么这会更好,但我们似乎没有太多合法的东西可以做。

【讨论】:

  • 这是否意味着我必须在我使用的每个 ViewController 上进行设置?
  • 我认为如果您在根 vc 上设置它应该没问题,除非您稍后更改它。不过为了确定,我会测试一下。
  • 谢谢,我试过了,好像没什么区别。我会继续探索一些想法。
  • 如果有帮助,您必须确保在 info.plist 中允许视图控制器设置其状态栏样式。
  • 谢谢 Daniel,我已经设置了该属性,但仍然没有运气
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-09-05
  • 2017-05-14
  • 1970-01-01
  • 2016-03-21
  • 1970-01-01
  • 2012-01-24
  • 1970-01-01
相关资源
最近更新 更多