Infatti per FullScreen
aggiornamento barra di stato chiamato automaticamente, ma non per OverFullScreen
.
Inoltre nel mio caso ero necessità di trattare con controller di navigazione in pila, per passare ModalViewController come figlio:
extension UINavigationController {
public override func childViewControllerForStatusBarHidden() -> UIViewController? {
return self.visibleViewController
}
public override func childViewControllerForStatusBarStyle() -> UIViewController? {
return self.visibleViewController
}
}
All'interno ModalViewController aggiorniamo manualmente barra di stato, anche al fine di rendere più agevolmente dobbiamo farlo in viewWillDisappear
, ma a quel punto visibleViewController
ancora ModalViewController, non è rimasto nulla da usare lo stato di bool internoBarHidden e aggiornarlo di conseguenza
override func viewWillAppear(animated: Bool) {
super.viewWillAppear(animated)
self.statusBarHidden = true
self.setNeedsStatusBarAppearanceUpdate()
}
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
self.statusBarHidden = false
self.setNeedsStatusBarAppearanceUpdate()
}
override func prefersStatusBarHidden() -> Bool {
return self.statusBarHidden
}
fonte
2015-11-07 13:09:57
si prega di verificare http://stackoverflow.com/questions/32808593/setstatusbarhidden-withanimation-deprecated-in-ios- 9, che penso risolva il problema. – geraldWilliam
ciao, grazie ma lo stesso problema. funziona su una presentazione a schermo intero ma non su un'impostazione a schermo intero .. – raphael
Prima di andare a plistare e controllare se l'aspetto della barra di stato basato su controller è impostato su SÌ e impostare prefersStatusBarHidden() che hai provato. – Flipper