2013年9月13日金曜日

iOS7対応: StatusBarが非表示にならない



iOS7: StatusBarが非表示にならない

//ルートのNavigationControllerに追加。
- (void)viewDidLoad
{
    [super viewDidAppear:animated];
    // iOS 7
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {
        [self setNeedsStatusBarAppearanceUpdate];
    }
}

//StatusBarを非表示にしたいViewControllerに次のメソッドを追加する。
//defaultの値はNO
- (BOOL)prefersStatusBarHidden
{
    return YES;
}

NavigationControllerが複数ある場合は、各々で
[self setNeedsStatusBarAppearanceUpdate]
を呼ぶ必要があるかもしれません。

iPadでUISplitViewControllerを使う場合は振る舞いが異なる。
この場合。UISplitViewControllerにprefersStatusBarHiddenを実装、YESを返すようにすると全てのViewControllerでStatusBarが非表示になる。
個別にStatusBarの表示/非表示を切り替える方法は試していない。

0 件のコメント: