5

そのため、Xcodeの「ユーティリティアプリケーション」テンプレートを使用しており、メインビューコントローラーがあります。ユーザーはボタンを使用してステータスバーを表示したり表示したりできます。また、モーダルセグエを使用したFlipside View Controllerもあります。これには、メインVCに戻るための完了ボタンがあります。Flipside VCを表示するたびに、ステータスバーが常に非表示にならないように設定しました。これは、ユーザーがメインVCのステータスバーを非表示にしてFlipside VCに移行した場合、アニメーション化され、ユーザーがステータスバーを非表示にせずに移行した場合、ステータスバーには何も起こらないことを意味します。

それはすべて良いことです。問題はFlipsideVCからMainVCに戻ることです。メインVCのステータスバーの非表示状態を確認するための条件が必要です。これは、完了ボタンを押すとフリップサイドVCで呼び出されます。

BOOLとNSNotificationCenterを使用して、ステータスバーの状態に関するメッセージをFlipsideVCに送信することを検討しました。

私はこのコードを持っていました:

-(BOOL)checkStatusBarHidden:(id)input
{
    BOOL result;

    if ([UIApplication sharedApplication].statusBarHidden = YES)
    {
        result = YES;
    }
    else
    {
        result = NO;
    }

    return result;
}

しかし、これはすべて、 FlipsideVCにステータスバーの状態を通知するためにどこかで使用できるかもしれないと推測して考えているだけです。多分変更することを考えました

[UIApplication sharedApplication].statusBarHidden = YES)

のようなものに

self.statusBarHidden = YES //which of course isn't going to work

しかしとにかく、私が言ったように、それは推測であり、私は何をすべきかわかりません。

4

1 に答える 1

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;
}
于 2013-01-27T20:19:28.237 に答える