当“基于视图控制器的状态栏外观”为YES时,如何隐藏iOS状态栏?

4

我需要根据视图控制器更改状态栏样式,因此在我的plist文件中,“View controller-based status bar appearance”设置为YES

有时我需要隐藏状态栏!

我尝试使用setStatusBarHidden,但似乎只有在“View controller-based status bar appearance”设置为NO时才有效...

那么是否有一种方法可以隐藏状态栏?


在您的视图控制器中重写 prefersStatusBarHidden 方法。 - dan
只有在“基于视图控制器的状态栏外观”设置为YES时,设置prefersStatusBarHidden才有效。 - faris.halteh
1个回答

1

首先,声明一个变量来表示是否隐藏:

@interface ExampleViewController
{
    BOOL statusBarHidden;
}

第二步,覆盖UIViewController依赖于变量的方法:

- (BOOL)prefersStatusBarHidden {
    return statusBarHidden;
}

最后,当您需要隐藏状态栏时,请执行以下操作:

Finally,当您需要隐藏状态栏时,请执行:

statusBarHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];

当您需要再次显示状态栏时,请执行以下操作:

显示

statusBarHidden = NO;
[self setNeedsStatusBarAppearanceUpdate];

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接