1. ホーム
  2. ios7

[解決済み] UIImagePickerControllerがステータスバーの外観を壊す

2022-06-05 08:27:04

質問

私の .plist ファイルに " ビューコントローラによるステータスバーの表示 に設定されています。 NO . しかし UIImagePickerController に設定されているように動作します。 YES .

私のアプリでは、VCで提示した UIImagePickerController .

問題はこのように起こります。

  • フォト ピッカーが表示された後、フォト ライブラリを選択すると、ステータス バーのテキストの色が変更される。
  • その後一度 UIImagePickerController が解除されると、ステータスバーの間隔が変更されます。 が変更され、他のコントローラ用のナビゲーションバーがすべてステータスバーの下に表示されます。

ビューコントローラでステータスバーを管理せずに、これを解決する方法はありますか?

どのように解決するのですか?

上記の解決策はどれもうまくいきませんでしたが、Rich86man と iOS_DEV_09 の回答を組み合わせることで、一貫して動作する解決策を手に入れました。

UIImagePickerController* imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;

- (void)navigationController:(UINavigationController *)navigationController willShowViewController:(UIViewController *)viewController animated:(BOOL)animated
{
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
}


この素晴らしいソリューションについて。2014 / iOS8 の場合、場合によっては、さらに prefersStatusBarHidden と、場合によっては childViewControllerForStatusBarHidden だから...

-(void)navigationController:(UINavigationController *)navigationController
        willShowViewController:(UIViewController *)viewController
        animated:(BOOL)animated
    {
    [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }

-(BOOL)prefersStatusBarHidden   // iOS8 definitely needs this one. checked.
    {
    return YES;
    }

-(UIViewController *)childViewControllerForStatusBarHidden
    {
    return nil;
    }

-(void)showCamera
    {
    self.cameraController = [[UIImagePickerController alloc] init];
    self.cameraController.delegate = (id)self; // dpjanes solution!
    etc...