当“查看基于控制器的状态栏外观”=YES 时隐藏 ios 状态栏
Posted
技术标签:
【中文标题】当“查看基于控制器的状态栏外观”=YES 时隐藏 ios 状态栏【英文标题】:Hide ios status bar when "View controller-based status bar appearance"=YES 【发布时间】:2016-11-02 23:17:22 【问题描述】:我需要根据视图控制器更改状态栏样式,因此在我的 plist 文件中“基于视图控制器的状态栏外观”设置为 YES。
而且我有时需要隐藏状态栏!
我正在尝试使用 setStatusBarHidden,但它似乎只有在“查看基于控制器的状态栏外观”设置为 NO 时才有效> ...
那么有没有办法隐藏状态栏呢?
【问题讨论】:
覆盖视图控制器中的prefersStatusBarHidden
方法
设置 prefersStatusBarHidden 仅在基于视图控制器的状态栏外观设置为 YES 时才有效
【参考方案1】:
首先,声明一个变量来表示是否隐藏:
@interface ExampleViewController
BOOL statusBarHidden;
第二,重写依赖变量的UIViewController方法:
- (BOOL)prefersStatusBarHidden
return statusBarHidden;
最后,当您需要隐藏状态栏时,请执行以下操作:
statusBarHidden = YES;
[self setNeedsStatusBarAppearanceUpdate];
当您需要再次显示状态栏时,请执行以下操作:
statusBarHidden = NO;
[self setNeedsStatusBarAppearanceUpdate];
【讨论】:
以上是关于当“查看基于控制器的状态栏外观”=YES 时隐藏 ios 状态栏的主要内容,如果未能解决你的问题,请参考以下文章
UIImagePickerController 打破状态栏的外观
在 XCode 8.2 / Swift 3.0 中更改状态栏样式(没有“查看基于控制器的状态栏外观”)