单视图中的状态栏隐藏/样式

时间:2014-01-19 14:24:20

标签: ios iphone ios7 statusbar

在我的应用中我有多个视图。我需要隐藏一个视图的状态栏(此vC2按顺序导航C - > VC - >推送到vC2)。它首先通过设置工作  plist中的View controller-based status bar appearance = NO

然后使用 viewWillAppear中的[UIApplication sharedApplication].statusBarHidden = YES; 和viewWillDisappear中的[UIApplication sharedApplication].statusBarHidden = NO; 恢复状态栏。

然后,我想在同一个应用程序中为另一个视图(VC3)设置浅色样式的状态栏。只有一种方式与我合作 通过设置View controller-based status bar appearance = YES并使用

-(UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

在VC3.m中 我的问题是View controller-based status bar appearance左右,它使用NO值隐藏状态栏,并使用YES值作为状态栏的灯光样式

我可以在我的应用中组合隐藏/和样式状态栏吗?

我的目标是iOS7

1 个答案:

答案 0 :(得分:0)

你可以在viewController中使用这个函数:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

plist布尔值必须为YES,您可以添加更多内容:

尝试

[self setNeedsStatusBarAppearanceUpdate]

如果你有视图控制器作为其他viewControllers的子节点,最后一个孩子应该决定

如果VC是另一个VC的子级(这是您子类的第一级VC,如果您使用的是没有子类化的导航则不需要)

- (UIViewController *)childViewControllerForStatusBarHidden {
     return _myChildViewController;
}