我有一个全屏显示的视图控制器,并且从视图控制器可以呈现另一个模态VC,模态VC需要状态栏,但在解除模态VC控制器后,基本VC有状态栏的空间顶部,甚至我设置:
[[UIApplication sharedApplication] setStatusBarHidden:YES]
状态栏是隐藏但是空间仍然存在,我检查了基础VC视图的帧,它从0开始,我不认为我应该让它的y坐标从-20开始,但我还能做些什么呢?
由于
答案 0 :(得分:3)
试试这个:
[[UIApplication sharedApplication] setStatusBarHidden:NO];
self.view.frame = [[UIScreen mainScreen] applicationFrame];
来自applicationFrame上的文档:
此属性包含屏幕边界减去占用的区域 状态栏,如果可见。使用此属性是 建议的方法来检索应用程序的初始窗口大小。 矩形以点数指定。
要获得更强大的解决方案,请更改框架以响应状态栏框架更改。您的应用程序委托子类可以实现:
-application:willChangeStatusBarFrame:
-application:didChangeStatusBarFrame:
或者,您可以使用NSNotificationCenter注册这些通知:
答案 1 :(得分:0)
我已经尝试过你的方法,但它对我不起作用,我用这种方式解决了它,当模态VC解散时,在基础VC的viewDidAppear
我需要:
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
self.wantsFullScreenLayout = YES;
[self.view layoutSubviews];
我知道这不是一个好的解决方案,但这是我现在唯一能想到的,无论如何,谢谢你的帮助。