【发布时间】:2013-10-03 19:13:47
【问题描述】:
我有一个带有 childViewController 的 UIViewController。
childViewController 要么占据整个屏幕,要么占据部分屏幕,覆盖在 parentViewController 之上。
当它占据整个屏幕时,我想更改 UIStatusBarStyle。
在我的 plist 中,我添加了 View controller-based status bar appearance 并将其设置为 NO。
在 childViewController 我有以下内容:
-(UIStatusBarStyle)preferredStatusBarStyle {
if (self.isFullScreen) {
return UIStatusBarStyleDefault;
} else {
return UIStatusBarStyleLightContent;
}
}
-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
return UIStatusBarAnimationFade;
}
当从半屏和全屏转换时,我调用:
[self setNeedsStatusBarAppearanceUpdate];
但我的 UIStatusBar 不会将外观从浅色变为深色。
定期调用:
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];
工作正常,但是我想利用这样一个事实,即我可以将动画持续时间与动画块内的更改相匹配。
谢谢。
【问题讨论】:
-
您应该将基于视图控制器的状态栏外观设置为 YES 以更改使用 -(UIStatusBarAnimation)preferredStatusBarUpdateAnimation 方法。
-
@BoranA 啊!这有帮助......还需要设置
childViewControllerForStatusBarStyle。添加答案以便我接受?
标签: ios uiviewcontroller ios7 uistatusbar