5

所以我在 Xcode 中使用“实用程序应用程序”模板并拥有主视图控制器,用户可以在其中使用按钮隐藏和显示状态栏。我也有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

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

4

1 回答 1

2

您可能会考虑在 using 属性中存储有关状态栏状态的信息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;
}
于 2013-01-27T20:19:28.237 回答