7

Info.plistの「コントローラーベースのステータスバーの外観を表示する」をNOに設定してみました。呼び出してみました

[[UIApplication sharedApplication] setStatusBarHidden:YES];

私はもう試した

-(BOOL)prefersStatusBarHidden{ 
  return YES;
}

でピッカーを起動しようとしました

[self presentViewController:picker animated:NO completion:^{
  [[UIApplication sharedApplication] setStatusBarHidden:YES];
}

それでも、カメラ コントロールに重なるステータス バーがあります。ただし、iOS 7 にしかありません。

ステータス バーは、アプリの他の場所には表示されません。ここでパズルの重要なピースが欠けているように感じます.View ControllerまたはUIImagePickerControllerについていくら読んでも、パズルのピースを見つけるのに役立ちませんでした.

他の誰かがこの問題について少し洞察を持っていることを願っています。ありがとうございました。

編集:私が望む効果は、ステータスバーがアプリ内のすべてに表示されることです。ただし、カメラピッカーと、使用する他のいくつかの「外部」(電子メール関連) ビューコントローラーを除きます。

4

9 に答える 9

17

保持したい場合はViewController-Based Status Bar Appearance、UIImagePickerController をサブクラス化し、 and をオーバーライドprefersStatusBarHiddenしますchildViewControllerForStatusBarHidden

@interface NoStatusBarImagePickerController : UIImagePickerController
@end

@implementation NoStatusBarImagePickerController

- (BOOL)prefersStatusBarHidden {
  return YES;
}

- (UIViewController *)childViewControllerForStatusBarHidden {
  return nil;
}

@end
于 2013-10-05T16:30:52.610 に答える
1

サイコダッドの方法は私に合っています。私は以下を置きます

[[UIApplication sharedApplication] setStatusBarHidden:YES];

UIImagePickerController のサブクラスのメソッド viewWillDisappear に追加します。

しかし、ステータスバーがまったく表示されないため、 Alexandru Dranca メソッドの方が優れています。

しかし、これはIOS 7のバグだと思います...

于 2013-09-25T06:59:29.227 に答える
0

iOS7 の ToonPAINT を修復するためにこのバグに取り組んでおり、Info.plist ファイルで 2 つのことを設定する以外に最終的に機能したもの (ステータス バーは最初は非表示 = NO; コントローラー ベースのステータス バーの外観を表示 = NO)

ステータスバーのスタイルを変更することでした(まったく表示したくありませんでしたが)。ステータス バーを非表示にするだけでは十分ではありません。iOS7のバグのようです。

アプリのデリゲートに次を追加します。

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

{NB .. UIStatusBarStyleBlackTranslucent は非推奨です。これを試す場合は、おそらく UIStatusBarStyleLightContent を使用してください}

于 2013-10-01T20:28:41.190 に答える
0

「コントローラーベースのステータスバーの外観を表示する」をNOに設定すると、うまくいきます。

于 2013-09-23T06:43:35.423 に答える
0

この質問に対する答えは、「これは iOS 7 のバグです」だと思います。ここに挙げた方法はどれも私たちのケースでは役に立ちませんでした.何人かの人々が今これを修正しようとしています.

これを再現する手順はわかりませんが、同じ問題を抱えている人をたくさん見てきました。これは実際には iOS 7 のバグであると言っても過言ではありません。ほとんどの人は、上記の複数の方法でこの問題を解決できます。ただし、まれに、そのように修正できない場合があります。あなたがこれを読んでいるなら、あなたもそれらの人々の一人ではないことを願っています.

于 2014-03-13T23:32:47.927 に答える
0

あなたは離れるべきです

-(BOOL)prefersStatusBarHidden{ 
  return YES;
}

また、これを追加します

-(void)viewWillAppear:(BOOL)animated {
    ...
    [self setNeedsStatusBarAppearanceUpdate];
    ...
}
于 2013-09-26T20:25:26.003 に答える