当前位置: 首页 > 知识库问答 >
问题:

在iOS8中使用Swift更改特定ViewControllers的状态栏颜色

呼延景同
2023-03-14
override func preferredStatusBarStyle() -> UIStatusBarStyle {
 return UIStatusBarStyle.LightContent;
}

在任何ViewController中使用上面的代码将特定ViewController的statusBar颜色设置为白色对我来说在iOS8中是行不通的。有什么建议吗?使用UIApplication.SharedApplication方法,在需要对整个应用程序的Info.plist进行更改后,颜色也会更改。

// Change the colour of status bar from black to white
UIApplication.sharedApplication().statusBarStyle = .LightContent

我如何能够仅仅对某些必需的和特定的ViewControllers的状态栏颜色进行更改?

共有1个答案

任长卿
2023-03-14

在阅读了所有的建议并试用了一些东西之后,我可以通过以下步骤使其适用于特定的viewcontrollers:

第一步:

打开info.plist并将一个名为“查看基于控制器的状态栏外观”的新键插入到NO

通常我们将以下代码放在AppDelegate的application(_:DidFinishLaunchingWithOptions:)方法中,

雨燕2

UIApplication.sharedApplication().statusBarStyle = .LightContent

雨燕3

UIApplication.shared.statusBarStyle = .lightContent

雨燕2

UIApplication.sharedApplication().statusBarStyle = .LightContent

雨燕3

UIApplication.shared.statusBarStyle = .lightContent

此外,为特定的viewController实现ViewWillDiscount()方法,

override func viewWillDisappear(animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default

}
override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
 类似资料:
  • 问题内容: 对我来说,在任何ViewController中使用以上代码将特定ViewController的statusBar颜色设置为White都 不起作用 。有什么建议?使用UIApplication.sharedApplication方法,颜色会在整个应用程序的Info.plist中进行必要的更改之后更改。 如何仅更改某些必需的 特定ViewController 的状态栏颜色? 问题答案: 阅

  • 对于ios 13,我无法设置状态栏的文本颜色。如何查看statusBarManager?如何仅更改文本颜色? 由于: 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因是:“UIApplication上调用了-statusBar或-statusBarWindow的应用程序:由于不再有状态栏或状态栏窗口,必须更改此代码。”。“请使用“场景”窗口上

  • 问题内容: 在XCode 7.3.x中,我用以下方法更改了StatusBar的背景颜色: 但是似乎这在Swift 3.0中不再起作用。 病态尝试: 但这给了我: 有任何想法如何使用XCode8 / Swift 3.0进行更改吗? 问题答案: extension UIApplication { var statusBarView: UIView? { if responds(to: Selector

  • 问题内容: 我正在尝试将状态栏的颜色更改为蓝色或其他某种颜色。 这可能吗,或者Apple不允许吗? 问题答案: 注意:此解决方案在iOS 13及更高版本下失败。 Plist中的第一个设置为 输出屏幕截图如下

  • 在我的一个活动中,我使用更改了工具栏的颜色。但在使用的5.0设备上,颜色是活动主题中的的颜色,所以我有两种非常不同的颜色,看起来不太好。 我意识到在5.0中可以使用,但没有这个功能。 所以我的问题是在5.0中,如何用更改状态栏颜色?

  • 晚上好,伙计们。 我有个问题。我已经心神不定好长时间了。这里我有两个AScreen和BScreen屏幕。对于AScreen,我想要一个带有黑色图标的白色状态栏。对于BScreen,一个红色的状态栏,图标为白色。如何做到这一点?? 当我在屏幕A上时,我使用Flatter_statusbarcolo状态栏为红色,我导航到屏幕B状态栏为白色,但当我返回屏幕A时,状态栏保持白色(屏幕B的颜色)