检查隐藏的模式视图控制器的iOS状态栏

所以我在Xcode中使用了“Utility Application”模板,并拥有主视图控制器 ,用户可以使用button隐藏和显示状态栏。 我也有Flipside View Controller ,使用一个模式的segue,它有一个完成button返回到主VC 。 我已经设置好了,所以每当查看Flipside VC时 ,状态栏总是不被隐藏。 这意味着,如果用户隐藏了主VC上的状态栏并转换到Flipside VC ,它将animation并且如果用户没有隐藏状态栏并且它们转换,则状态栏没有任何反应。

这一切都很好,问题是从Flipside VC转移到Main VC 。 我需要一个条件来检查主VC中状态栏的隐藏状态,当按下完成button时,将在Flipside VC中调用它。

我已经研究过使用BOOL以及NSNotificationCenter向Flipside VC发送关于状态栏状态的消息。

我有这样的代码:

-(BOOL)checkStatusBarHidden:(id)input { BOOL result; if ([UIApplication sharedApplication].statusBarHidden = YES) { result = YES; } else { result = NO; } return result; } 

但是,这只是猜测和思考,我可能能够用它来通知Flipside VC的状态栏状态。 我想也许改变了

 [UIApplication sharedApplication].statusBarHidden = YES) 

类似的东西

 self.statusBarHidden = YES //which of course isn't going to work 

但无论如何,正如我所说,这是猜测,我不知道该怎么做。

您可能会考虑使用属性在MainViewController中存储有关状态栏状态的信息,例如

在你的MainViewController.h

 @property (nonatomic, assign) BOOL statusBarHidden; 

那么您可以使用FlipsideViewController属性从FlipsideViewController访问该值。

在你的FlipsideViewController.h

 MainViewController * mainVC = self.presentingViewController; if (mainVC.statusBarHidden) { // Do stuff } 

最后一点, 请将您的checkStatusBarHidden:方法更改为类似的方法

 - (BOOL)checkStatusBarHidden { return [UIApplication sharedApplication].statusBarHidden; }