首页 文章

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

提问于
浏览
5

所以我在Xcode中使用"Utility Application"模板并拥有 Main View Controller ,用户可以使用按钮隐藏并显示状态栏 . 我也得到了 Flipside View Controller ,使用模态segue,它有一个完成按钮返回到 Main VC . 我已将其设置为每次查看 Flipside VC 时,状态栏始终不会被隐藏 . 这意味着如果用户隐藏了 Main VC 上的状态栏并转换为 Flipside VC ,它将显示动画,如果用户没有隐藏状态栏并且他们转换,则状态栏没有任何反应 .

这一切都很好,问题是从 Flipside VC 过渡到 Main VC . 我需要一个条件来检查 Main 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 回答

  • 2

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

    在MainViewController.h中

    @property (nonatomic, assign) BOOL statusBarHidden;
    

    然后,您可以使用 presentingViewController 属性从 FlipsideViewController 访问该值 .

    在FlipsideViewController.h中

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

    作为最后的评论, please 将您的 checkStatusBarHidden: 方法更改为类似的方法

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

相关问题