【问题标题】:Setting UIStatusBarStyle in childViewController在 childViewController 中设置 UIStatusBarStyle
【发布时间】: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


【解决方案1】:

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

【讨论】:

  • 谢谢。只需添加评论,我还必须为 parentViewController 设置 (UIViewController*)childViewControllerForStatusBarStyle
猜你喜欢
  • 1970-01-01
  • 2014-08-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多