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

时间:2013-01-27 20:00:01

标签: ios objective-c modalviewcontroller statusbar

所以我在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

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

1 个答案:

答案 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;
}