隐藏导航栏时更改状态栏颜色

时间:2015-07-07 18:35:05

标签: swift cocoa-touch

隐藏导航栏时,我想设置状态栏的黑色(条纹色调)和白色色调。

我希望它能用于特定的观点。我试过这个:

override func viewDidLoad() 
{
    super.viewDidLoad()

    self.navigationController?.setNavigationBarHidden(true, animated: true)

    self.navigationController?.navigationBar.barStyle = UIBarStyle.Black

    self.navigationController?.navigationBar.barTintColor = UIColor.blackColor()

    self.navigationController?.navigationBar.tintColor = UIColor.whiteColor()

}

我也试过这件事:我在基于视图控制器的状态栏外观的P列表中将值设置为NO。

2 个答案:

答案 0 :(得分:2)

如果您尝试更改状态栏颜色,可以使用

UIApplication.sharedApplication().statusBarStyle = .LightContent

请注意,您不能将状态栏颜色设置为LightContent和默认值(黑色)以外的任何颜色。但是,您可以将状态栏设置为浅,并使用不同的颜色在其后面抛出一个元素。

如果你想要一种真实的方法来覆盖颜色使其变黑(默认)或亮,你也可以尝试

override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
}

在要覆盖的视图控制器中。如果您需要不同的背景颜色,请在其后面添加一个UILabel颜色并指定浅色内容或默认为颜色。

答案 1 :(得分:0)

只需在viewdidload中写这两行

self.navigationController?.setNavigationBarHidden(true,animation:true) setNeedsStatusBarAppearanceUpdate()

将此函数粘贴到控制器类中的任何位置

覆盖var preferredStatusBarStyle:UIStatusBarStyle {         返回.lightContent }