UIApplication.SharedApplication.SetStatusBarHidden
(MonoTouch代码,但也适用于Obj-C)完成iOS 6的工作,但对于iOS 7,我们必须:
SetNeedsStatusBarAppearanceUpdate ()
(例如:显示全屏图像的视图控制器)PrefersStatusBarHidden ()
。然而,上面提到的视图控制器嵌入在导航控制器中,导航控制器也嵌入在滑出菜单中。即使使用AddChildViewController()
将所有嵌入式视图控制器添加到层次结构中,尝试更新子视图控制器中的状态栏也无效。
有任何想法吗?
编辑
Window.RootViewController (Menu)
|___ ViewControllerA (Navigation Bar)
|___ ViewControllerB (Actual View controller)
ViewControllerB
想要隐藏/显示状态栏
ViewControllerA应覆盖childViewControllerForStatusBarHidden并返回ViewControllerB。
- (UIViewController *)childViewControllerForStatusBarHidden {
return _viewControllerB;
}
它似乎并不完全是你试图做的。如果您只想在所有子视图控件中隐藏状态栏,则可以设置新的plist propertyUIViewControllerBasedStatusBarAppearance
。
...如果您希望选择不使用此行为并使用UIApplication statusBarStyle方法设置状态栏样式,请将UIViewControllerBasedStatusBarAppearance键添加到应用程序的Info.plist文件中,并为其指定值NO。
来源是BTW,非常适合在iOS7中处理与UINavigationBar
和UIStatusBar
相关的各种信息。