我有一个带有 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];
工作正常,但是我想利用这样一个事实,即我可以将动画持续时间与动画块内的更改相匹配。
谢谢你。