所以我在Xcode中使用“Utility Application”模板并拥有主视图控制器,用户可以使用按钮隐藏和显示状态栏。我还得到了 Flipside View Controller ,使用模态segue,它有一个完成按钮返回主VC 。我已将其设置为每当查看 Flipside VC 时,状态栏始终不会被隐藏。这意味着,如果用户隐藏主VC上的状态栏并转换为 Flipside VC ,则会激活该用户并且用户是否未隐藏状态栏并且它们转换,状态栏没有任何反应。
这一切都很好,问题是从 Flipside VC 转换回主VC 。我需要一个条件来检查主VC 中状态栏的隐藏状态,当按下完成按钮时,它将在 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
但无论如何,正如我所说,这是在猜测,我不知道该怎么做。
答案 0 :(得分:2)
您可以考虑使用属性在MainViewController
中存储有关状态栏状态的信息,例如
MainViewController.h
@property (nonatomic, assign) BOOL statusBarHidden;
然后您可以使用FlipsideViewController
属性从presentingViewController
访问该值。
FlipsideViewController.h
MainViewController * mainVC = self.presentingViewController;
if (mainVC.statusBarHidden) {
// Do stuff
}
作为最后的评论,请将您的checkStatusBarHidden:
方法更改为
- (BOOL)checkStatusBarHidden {
return [UIApplication sharedApplication].statusBarHidden;
}