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

Ben*_*Ben 5 objective-c statusbar modalviewcontroller ios

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

这一切都很好,问题是从转变回到贫乏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;
}
Run Code Online (Sandbox Code Playgroud)

但这只是猜测和思考我可以在某处使用它来通知Flipside VC状态栏状态.我想到也许改变了

[UIApplication sharedApplication].statusBarHidden = YES)
Run Code Online (Sandbox Code Playgroud)

喜欢的东西

self.statusBarHidden = YES //which of course isn't going to work
Run Code Online (Sandbox Code Playgroud)

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

Gab*_*lla 2

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

在你的MainViewController.h

@property (nonatomic, assign) BOOL statusBarHidden;
Run Code Online (Sandbox Code Playgroud)

然后您可以FlipsideViewController使用该presentingViewController属性访问该值。

在你的FlipsideViewController.h

MainViewController * mainVC = self.presentingViewController;
if (mainVC.statusBarHidden) {
   // Do stuff
}
Run Code Online (Sandbox Code Playgroud)

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

- (BOOL)checkStatusBarHidden {
    return [UIApplication sharedApplication].statusBarHidden;
}
Run Code Online (Sandbox Code Playgroud)