【问题标题】:Status bar in single view hide/ style单视图隐藏/样式中的状态栏
【发布时间】:2014-02-08 16:11:37
【问题描述】:

在我的应用中,我有多个视图。我需要隐藏一个视图的状态栏(这个 vC2 的顺序是 navigationC -> VC ->push to vC2)。它首先通过设置工作 View controller-based status bar appearance = NO 在 plist 中

然后使用 [UIApplication sharedApplication].statusBarHidden = YES; 在视图中将出现 和[UIApplication sharedApplication].statusBarHidden = NO; in viewWillDisappear 恢复状态栏。

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

-(UIStatusBarStyle)preferredStatusBarStyle
{
    return UIStatusBarStyleLightContent;
}

在 VC3.m 中 我的问题是在View controller-based status bar appearance 附近,它与 NO 值一起用于隐藏状态栏,并与 YES 值一起用于状态栏的浅色样式

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

我的目标是iOS7

【问题讨论】:

    标签: ios iphone ios7 statusbar


    【解决方案1】:

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

    - (BOOL)prefersStatusBarHidden {
        return YES;
    }
    

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

    试试

    [self setNeedsStatusBarAppearanceUpdate]
    

    如果您将视图控制器作为其他视图控制器的子级,则应由最后一个子级来决定

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

    - (UIViewController *)childViewControllerForStatusBarHidden {
         return _myChildViewController;
    }
    

    【讨论】:

    • 我已经试过了,状态栏还在。是否需要在视图或 plist 中添加一些内容?
    • 你对VC有什么特殊配置吗?
    • 不,我想..像什么特殊配置?
    • 通过将 tge plist 设置为 YES,我失去了状态栏的隐藏属性
    • 通过将 Plist 设置为 yes,您必须控制每个 VC 的行为。我发现难以控制的唯一方法是当我有一个 navigationC -> PageViewC -> VC 架构时
    猜你喜欢
    • 1970-01-01
    • 2012-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    相关资源
    最近更新 更多