检查隐藏的模式视图控制器的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; }