2017-09-06 51 views
0

我有一个非常具体的问题关于隐藏状态栏。 我整合了下面的代码,很容易在每个视图控制器上获得一个状态栏,但我有一个cameraViewcontroller,我不想要一个状态栏。我试图隐藏状态栏。隐藏状态栏在某些视图控制器*具体*

//change the statusbar color for all view controllers 
    application.statusBarStyle = .lightContent 

我尝试使用

override var prefersStatusBarHidden: Bool { 
    return true 
} 

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 

    UIApplication.shared.isStatusBarHidden = true 

    return true 
} 

但没有这似乎工作。我是编程和堆栈溢出的新手,请帮助我。我试图寻找答案,但似乎无法找到解决这个难题的答案。您的帮助将非常感谢!谢谢。

回答

0

它的作品完美。

Objective-C的

-(BOOL)prefersStatusBarHidden{ 
    return YES; 
} 

斯威夫特

override var prefersStatusBarHidden: Bool { 
     return true 
} 

你也应该使用的info.plist

“查看基于控制器的状态栏外观” 设置为NO

“状态栏最初是隐藏的” 设置为YES

+0

是有application.statusBarstyle = .lightcontent在 “AppDelegate中” 造成这个问题?因为状态栏仍在CameraViewController中。我有“查看基于控制器的状态栏外观”已设置为否。当我将“状态栏最初隐藏”设置为YES时,我在其他视图控制器上丢失了所有状态栏。 –

+0

“statusBarStyle”已弃用:IOS 9.0 @KennyHo –

+0

因此,根据我的理解,您使用Swift的方式,您必须为所有视图控制器编写该代码。有没有办法做一些类似于statusBarStyle的东西,它会自动为我的所有视图控制器添加一个状态栏?然后,我只需摆脱CameraVC的一个状态栏。 –

0

可以应用下面的代码在CameraVC:

override var prefersStatusBarHidden: Bool { 
    return true 
}