iOS:在解雇需要状态栏的模态VC后,如何隐藏状态栏?

iOS:在解雇需要状态栏的模态VC后,如何隐藏状态栏?,ios,objective-c,Ios,Objective C,我有一个全屏显示的视图控制器,从视图控制器可以显示另一个模态VC,模态VC需要状态栏,但在解除模态VC控制器后,基本VC在顶部有状态栏的空间,甚至我设置: [[UIApplication sharedApplication] setStatusBarHidden:YES] 状态栏是隐藏的,但空间仍然存在,我检查了基本VC视图的框架,它从0开始,我不认为我应该使其y坐标从-20开始,但我还能做什么 谢谢试试这个: [[UIApplication sharedApplication] setSta

我有一个全屏显示的视图控制器,从视图控制器可以显示另一个模态VC,模态VC需要状态栏,但在解除模态VC控制器后,基本VC在顶部有状态栏的空间,甚至我设置:

[[UIApplication sharedApplication] setStatusBarHidden:YES]
状态栏是隐藏的,但空间仍然存在,我检查了基本VC视图的框架,它从0开始,我不认为我应该使其y坐标从-20开始,但我还能做什么

谢谢

试试这个:

[[UIApplication sharedApplication] setStatusBarHidden:NO];
self.view.frame = [[UIScreen mainScreen] applicationFrame];
从applicationFrame上的文档:

此属性包含屏幕边界减去 状态栏(如果可见)。使用此属性是 检索应用程序初始窗口大小的推荐方法。 矩形以点为单位指定

要获得更健壮的解决方案,请根据状态栏帧更改更改帧。应用程序委托子类可以实现:

-application:willChangeStatusBarFrame:
-application:didChangeStatusBarFrame:
或者,您可以使用NSNotificationCenter注册这些通知:

  • UIApplicationWillChangeStatusBarFrameNotification
  • UIApplicationIDChangeStatusBarFrameNotification

我尝试过你的方法,但它对我不起作用,我用这种方式解决了它,当模态VC解散时,在基本VC的
视图中出现
,我需要:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
self.wantsFullScreenLayout = YES;
[self.view layoutSubviews];
我知道这不是一个好的解决方案,但这是我目前唯一能想到的,谢谢你的帮助