我有一个带有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];
工作正常但是我想利用这个事实,即我可以匹配动画块内部更改的动画持续时间。
谢谢。
答案 0 :(得分:0)
您应该在plist中设置UIViewControllerBasedStatusBarAppearance to YES
以使用 - (UIStatusBarStyle)preferredStatusBarStyle
方法。