1

childViewController を持つ UIViewController があります。

childViewController は、画面全体または画面の一部を占有し、parentViewController の上にオーバーレイします。

画面全体を占めるとき、UIStatusBarStyle を変更したいと思います。

私のplistでは、追加View controller-based status bar appearanceしてに設定しましたNO

childViewController には次のものがあります。

-(UIStatusBarStyle)preferredStatusBarStyle {
    if (self.isFullScreen) {
        return UIStatusBarStyleDefault;
    } else {
        return UIStatusBarStyleLightContent;
    }
}

-(UIStatusBarAnimation)preferredStatusBarUpdateAnimation {
    return UIStatusBarAnimationFade;
}

ハーフスクリーンとフルスクリーンから移行するときは、次のように呼び出します。

[self setNeedsStatusBarAppearanceUpdate];

しかし、私の UIStatusBar は外観を明るいものから暗いものに変えません。

次への通常の呼び出し:

[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent animated:YES];

ただし、正常に動作しますが、アニメーションブロック内の変更のアニメーション期間を一致させることができるという事実を利用したいと思います。

ありがとうございました。

4

1 に答える 1