在childViewController中设置UIStatusBarStyle

时间:2013-10-03 19:13:48

标签: ios uiviewcontroller ios7 uistatusbar

我有一个带有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];

工作正常但是我想利用这个事实,即我可以匹配动画块内部更改的动画持续时间。

谢谢。

1 个答案:

答案 0 :(得分:0)

您应该在plist中设置UIViewControllerBasedStatusBarAppearance to YES以使用 - (UIStatusBarStyle)preferredStatusBarStyle方法。