23

UIViewControllerの には、次のものがあります。

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
    [self.view sizeToFit];
}

それでも、ビューは次のようになります。

ここに画像の説明を入力

このコードは確実に実行されます。からビューをロードしますxib。スタイルを変更するなど、ステータスバーに対して他に何もしていません。何が間違っている可能性がありますか?

アプリのデリゲートで「application.statusBarHidden = YES」を設定しても、次のように表示されます。

ここに画像の説明を入力

4

6 に答える 6

62

アプリの plist で、[ビュー コントローラー ベースのステータス バーの外観] を [はい] に設定している場合は、ステータス バーを非表示にするビュー コントローラーに次のコードを追加します。

- (BOOL)prefersStatusBarHidden {
    return YES;
}

それ以外の場合は、「コントローラーベースのステータスバーの外観を表示する」が NO に設定されている場合は、ステータスバーを非表示にするたびに次を呼び出します。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
于 2013-08-20T08:30:28.470 に答える
45

アプリでステータス バーを非表示にする場合は、次の手順に従います。

ステップ1 :

ここに画像の説明を入力

ステップ2:

ここに画像の説明を入力

ステップ 3:

appDelegate didFinishLaunchingWithOptions 関数に追加します。

application.statusBarHidden = YES;

それで :

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      application.statusBarHidden = YES;
}
于 2013-10-06T17:22:54.357 に答える
12

これは、iOS 7 でステータス バーの処理方法が変更されたためです。

アプリで に設定UIViewControllerBasedStatusBarAppearanceすると機能するはずです。NOInfo.plist

于 2013-08-20T02:01:48.863 に答える
11

次のコードを使用して、アプリのステータス バーを表示/非表示にすることができます (IOS 7 - IOS 8 および IOS 9 で動作):

プロジェクトの .h ファイルに次のブール値を追加します。

BOOL isShowStatus;

そして.mファイルにこれを追加します:

//To show the status bar:
-(void)showTheStatusBar
{
    isShowStatus = YES;
    [self setNeedsStatusBarAppearanceUpdate];
}

//And to hide the status bar:
-(void)hideTheStatusBar
{
    isShowStatus = NO;
    [self setNeedsStatusBarAppearanceUpdate];
}

- (BOOL)prefersStatusBarHidden {
    return !isShowStatus;
}

たとえば、didload のように、どこからでも呼び出すだけです。

- (void)viewDidLoad
{
    [super viewDidLoad];

    //To show the status bar:

    [self showTheStatusBar];

    //Or to hide it:

    [self hideTheStatusBar];
}
于 2015-05-27T13:08:11.493 に答える
5

私にとってはうまくいきます:

- (BOOL)prefersStatusBarHidden {
    はいを返します。
}

常にルート ビューで。ステータスバーの可視性が親ビューから取得されるため、サブビューでそれを行っている場合は機能しません。

于 2014-12-03T10:15:42.773 に答える
-2

ステータスバーを非表示にした後、これを追加してみてください:

 [self.view setFrame:[self.view bounds]];

あなたの appdelegate.m でdidFinishLaunchingWithOptions

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
      application.statusBarHidden = YES;
}

コードを実行すると:

ここに画像の説明を入力

于 2013-08-18T21:22:13.760 に答える