有一點點清晰的解決方案。有一個功能childViewControllerForStatusBarHidden
,它專門設計用於返回應該轉發prefersStatusBarHidden的子視圖控制器。
所以,這將更好地覆蓋它。它看起來是這樣的:
override func childViewControllerForStatusBarHidden() -> UIViewController? {
if var topViewController = self.viewControllers.first {
if let navigationController = topViewController as? UINavigationController {
topViewController = navigationController.topViewController!
}
return topViewController
}
return super.childViewControllerForStatusBarHidden()
}
而且你可能甚至可以忽略以下內容。 NavigationViewController自己有childViewControllerForStatusBarHidden(),它會將它發送給子視圖控制器。
if let navigationController = topViewController as? UINavigationController {
topViewController = navigationController.topViewController!
}