確實FullScreen
自動調用狀態欄更新,而不是OverFullScreen
。
此外,在我來說,我是需要處理堆棧導航控制器,通過ModalViewController爲孩子:
extension UINavigationController {
public override func childViewControllerForStatusBarHidden() -> UIViewController? {
return self.visibleViewController
}
public override func childViewControllerForStatusBarStyle() -> UIViewController? {
return self.visibleViewController
}
}
內ModalViewController我們手動更新狀態欄,也爲了使它順利我們必須這樣做在viewWillDisappear
,但在那一點visibleViewController
仍然ModalViewController,沒有什麼可以使用內部布爾statusBarHidden並相應地更新
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
}
請檢查http://stackoverflow.com/questions/32808593/setstatusbarhidden-withanimation-deprecated-in-ios- 9,我認爲這是你的問題。 – geraldWilliam
嗨,謝謝,但同樣的問題。適用於全屏演示,但不適用於全屏設置。 – raphael
首先進入plist,並檢查基於視圖控制器的狀態欄外觀是否設置爲YES,並設置您嘗試過的prefersStatusBarHidden()。 – Flipper