散歩しながら 〜〜アプリ開発〜〜

Mac mini 始めました [objective-c]

ipadにてライブラリ表示の際、ステータスバーが表示されてしまう場合の対処法

iPadアプリを作成する際、写真選択のためにライブラリを表示したら

 

非表示にしていたステータスバーが表示されてしまった。

 

ライブラリはUIImagePickerControllerをUIPopoverControllerに入れて表示していましたが、ライブラリを表示した以外では再表示されなかったので、UIImagePickerController絡みの現象か???

 

 

表示した後に消したのでは違和感があるので、表示前に消す方法探していて以下にたどり着いた。

 

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated {

    [[UIApplicationsharedApplication] setStatusBarHidden:YESwithAnimation:UIStatusBarAnimationNone];

}

 

 

ライブラリを表示する際、UIImagePickerControllerのdelegateを実装しておくこと。

UIImagePickerController *imagePicker = [[UIImagePickerControlleralloc] init];

imagePicker.delegate = self;

 

UIImagePickerControllerがNavigationControllerを含んでいるため

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated

が呼び出されるしくみ。

 

他にもいい方法があるような気がしますが、現状での解決策でした。

 

良い方法があればコメントお願いします。