iOSでステータスバーの色が写真取得すると黒に戻る件についての対処
ステータスバーの文字の色を
[[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];
で白に変えられる。ところがUIImagePickerControllerで写真アルバムから写真を取得すると、このステータスバーの文字色が黒に戻ってしまう。調べたらstackoverflowが引っかかり、以下のワークアラウンドで回避できることがわかったのでメモ。
まずUIImagePickerControllerのデリゲートを設定し
UIImagePickerController *picker = [[UIImagePickerController alloc] init]; picker.delegate = self;
そして以下のデリゲートメソッドを実装する。
- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated { [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent]; }
UIImagePickerControllerはUINavigationControllerの子クラスなので、UINavigationControllerのデリゲートメソッドであるwillShowViewController
を実装しておく。ここに色を白にするコードを入れておいてデリゲートにセットしておけばOKというわけです。
以下、stackoverflowの元記事です。
ios7 - UIImagePickerController breaks status bar appearance - Stack Overflow