iOS 7 过渡指南给出了一个很好的提示,如何在使用中UIStatusBarStyle动态更改UIViewController
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleDefault;
}
和...一起[self setNeedsStatusBarAppearanceUpdate];
这在单视图应用程序中运行良好。但是,我现在正在尝试将UIStatusBarStyle模式视图中的 更改为UIStatusBarStyleLightContent. 有一个MainViewControllerwhich 连接到ModalViewController,它本身嵌入在 a 中NavigationController。已将其ModalViewController委托设置为MainViewController。
我尝试在该类中与以下方法一起调用,但没有效果[self setNeedsStatusBarAppearanceUpdate];:ModalViewController
// In ModalViewController.m
- (UIStatusBarStyle)preferredStatusBarStyle {
return UIStatusBarStyleLightContent;
}
我还尝试在显示模式视图时调用带有条件的方法[self setNeedsStatusBarAppearanceUpdate];以返回- 但这也没有效果。MainViewControllerprepareForSegue: sender:- (UIStatusBarStyle)preferredStatusBarStyle {}UIStatusBarStyleLightContent
如何更改模式视图中的 UIStatusBarStyle?
编辑:更新后:我需要提到的ModalViewController是嵌入在NavigationController带有NavigationBar. 设置为隐藏到NavigationBar上述调用[self setNeedsStatusBarAppearanceUpdate];inModalViewController工作正常。但不是在酒吧可见时。