113

アプリケーションを作成していて、ステータス バーを非表示にしたいです。アプリをテストすると、スプラッシュ スクリーンが表示されている間はステータス バーが非表示になりますが、アプリが完全に読み込まれると、ステータス バーが再び表示されます。

Xcode 5 と iOS 7 を使用しており、プログラムでステータス バーを無効にしようとしました

  ([[UIApplication sharedApplication] setStatusBarHidden:YES    
      withAnimation:UIStatusBarAnimationFade];),

info.plist ファイルで、.xib ファイルで属性インスペクターを使用します。何も機能していないようです。

何か案は?

4

14 に答える 14

221

次のメソッドをアプリのルート ビュー コントローラーに追加してみてください。

- (BOOL)prefersStatusBarHidden
{
    return YES;
}
于 2013-07-30T18:11:28.773 に答える
126

次の値を plist に追加する必要があります

これにより、ステータス バーを非表示モードに設定できます。これにより、他の提供された回答とは異なり、グローバルに設定されます。

更新:スプラッシュ スクリーンでステータス バーを非表示にしたい場合は、ターゲット ステータス バー オプションで「アプリケーションの起動中に非表示」をマークすることを忘れないでください。また、アプリ内のコードで行いたくない場合は、plist の「YES 」に「ステータス バーは最初は非表示です」を追加できます。

于 2013-09-19T23:56:49.807 に答える
17

ただし、UIImagePicker を使用すると、ステータス バーが再び表示されます。

その場合、以下のようにステータスバーを非表示にする必要があります。

- (void)imagePickerController:(UIImagePickerController *)aPicker didFinishPickingMediaWithInfo:(NSDictionary *)info {

// for iOS7
    if ([self respondsToSelector:@selector(setNeedsStatusBarAppearanceUpdate)]) {

        [[UIApplication sharedApplication] setStatusBarHidden:YES];
    }
于 2013-09-11T17:34:00.130 に答える
8

長い間検索した後、最終的にUIImagePickerController問題を処理する非常に単純な解決策を見つけました。

他の回答で述べたように、ステータスバーを AppDelegate didFinishLaunching で非表示に設定し、「コントローラーベースのステータスバーの外観を表示する」を NO に設定します。

次に、AppDelegate で:

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

出来上がり - UIImagePickerController が最前面にある場合でも、ステータス バーは非表示のままになります。

これは、UIImagePickerController を表示するたびに「再非表示」にするよりも優れています。これは、アプリ全体で非表示のままであるためです。

于 2013-09-20T08:07:22.107 に答える
7

特定の UIViewController のステータス バーを非表示にするには、次のように追加します。

-(BOOL)prefersStatusBarHidden
{
    return YES;
}

お役に立てれば !

于 2014-04-07T10:29:43.220 に答える
5

プロジェクトの概要から非表示にすることができます。起動時にチェックボックス非表示があります。

スナップショットを見る

ここに画像の説明を入力

于 2013-09-10T06:19:11.410 に答える
2

迅速な解決策

これをView Controllerに追加するだけです:

override func prefersStatusBarHidden() -> Bool {
    return true
}
于 2015-08-09T20:20:55.213 に答える
2

UIImagePicker にも問題がありました。孤独な答えと同様に、私の解決策は次のとおりでした。この行またはコードを追加しました:

[[UIApplication sharedApplication] setStatusBarHidden:YES];

この関数に:

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

iOS 6 以前ではテストしていませんが、iOS 7 では問題なく動作します。

于 2013-09-19T21:59:16.793 に答える
0

私は Xcode 6 を使用しています。このソリューションは iOS 7 および 8 で動作します。

まず、plistファイルで「コントローラベースのステータスバーの外観を表示する」をNOに設定します。

次に、AppDelegate で、これを追加します。

- (void)application:(UIApplication *)application didChangeStatusBarFrame:(CGRect)oldStatusBarFrame
{
      [application setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}
于 2014-10-11T11:48:52.703 に答える
0

私の問題は、View Controller コンテインメントを使用したことでした。たとえば、ナビゲーション コントローラーに埋め込まれている最上位のビュー コントローラーのみが、ステータス バーを表示または非表示にできます。

于 2014-12-23T13:47:23.030 に答える