269

iPhone 5 iOS 7 を 4 ベータ版にアップグレードしました。この iPhone で Xcode 5 からアプリを実行すると、ステータス バーが非表示になるはずですが、非表示になりません。

動作しない:

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];

動作しない:

[UIApplication sharedApplication].statusBarHidden = YES;

Apple Developer Forums にログインできない

4

26 に答える 26

16

従来の UIApplication メソッドを使用してステータス バーを非表示/表示するには、アプリで iOS 7 の plist 値を設定する必要があります。

View-Controller Based Status Bar Appearance = NO

この値はデフォルトで YES に設定されています。NO に変更すると、従来の方法を使用できます。YES に設定したままにしておくと、ステータス バーを非表示にすることはできますが、アプリ内の各 View Controller サブクラスがオーバーライドprefersStatusBarHiddenして YES を返す必要があります。

アプリでステータス バーの外観または可視性を変更する必要があり、View-Controller Based Status Bar Appearance が YES に設定されている場合は常に、最も外側の View Controller が次を呼び出す必要があります。

setNeedsStatusBarAppearanceUpdateAnimation

于 2013-09-17T17:22:14.563 に答える
7

ステータスバーを非表示にするには、以下の両方の変更を行う必要がありました。

ステータス バーを非表示にするビュー コントローラーに次のコードを追加します。

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

これを .plist ファイルに追加します (アプリケーション設定の「情報」に移動します)。

View controller-based status bar appearance --- NO

次に、この行を呼び出してステータス バーを非表示にすることができます。

[[UIApplication sharedApplication] setStatusBarHidden:YES];
于 2013-12-30T01:50:27.047 に答える
6

この簡単な方法を試してください:

- (void)viewWillAppear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationNone];
}

- (void)viewWillDisappear:(BOOL)animated
{
[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
}
于 2014-01-21T12:26:28.373 に答える
4

私にとってうまくいった唯一のことは、あなたのplistに以下を追加することです

<key>UIStatusBarHidden</key>
<true/>
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
于 2013-10-15T19:45:12.353 に答える
4

アプリ全体でステータス バーを非表示にする最も簡単な方法は、categoryonを作成しUIViewControllerてオーバーライドすることprefersStatusBarHiddenです。この方法では、すべてのビュー コントローラーにこのメソッドを記述する必要はありません。

UIViewController+HideStatusBar.h

#import <UIKit/UIKit.h>

@interface UIViewController (HideStatusBar)

@end

UIViewController+HideStatusBar.m

#import "UIViewController+HideStatusBar.h"

@implementation UIViewController (HideStatusBar)

//Pragma Marks suppress compiler warning in LLVM. 
//Technically, you shouldn't override methods by using a category, 
//but I feel that in this case it won't hurt so long as you truly 
//want every view controller to hide the status bar. 
//Other opinions on this are definitely welcome

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation"

- (BOOL)prefersStatusBarHidden
{
    return YES;
}

#pragma clang diagnostic pop


@end
于 2014-01-10T02:00:59.783 に答える
3

このスレッドの回答の多くは機能しますが、最終的に呼び出す必要がある動的なことをしようとしている場合は、次のように理解しています。

[self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];
于 2013-12-01T01:49:42.573 に答える
3

iOS 7 でステータス バーを非表示にする手順:

1. アプリケーションの info.plist ファイルに移動します。

2.設定、コントローラーベースのステータスバーの外観の表示:ブール値NO

ステータスバーの問題が解決したことを願っています.....

于 2014-01-30T11:48:31.687 に答える
3
-(BOOL)prefersStatusBarHidden
{
    return YES;
}
于 2013-10-09T10:24:23.453 に答える
3
  1. plistに----を追加

    コントローラ ベースのステータス バーの外観を表示する --- いいえ

  2. 各viewController書き込みで

    - (void) viewDidLayoutSubviews
    {
        CGRect viewBounds = self.view.bounds;
        CGFloat topBarOffset = 20.0;
        viewBounds.origin.y = -topBarOffset;
        self.view.bounds = viewBounds;
    
        [[UIApplication sharedApplication] setStatusBarStyle:UIStatusBarStyleLightContent];//for status bar style
    }
    

iOS 7 のステータス バーの問題ですが、アプリのターゲットは 5.1 以上である必要があります

于 2013-10-01T05:04:18.797 に答える
3

単一ビューの iOS 7 の場合、viewWillappear メソッドで使用します。

[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:NO];

ステータス バーを表示するには、次を使用します。

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:NO];
于 2014-07-14T05:39:19.993 に答える
2

Info Plistファイルで次のプロパティの行を追加します

プロパティ名 : コントローラー ベースのステータス バーの外観を表示する

値 : いいえ

于 2013-10-09T11:33:55.080 に答える
1

私は自分のプロジェクトでここに投稿されたこれらすべてのオプションを試しましたが、うまくいきませんでした。XcodeアプリをiOS 7にアップデートし、一部の設定がどこかでめちゃくちゃになったという事実に関係している可能性があると思いました。私はそれのために完全に新しいプロジェクトを構築することに決めました。単純に設定した後、「Status bar is initially hidden = YES」と「View controller-based status bar appearance = NO」を他の多くの人が述べているように、正しく機能しました(つまり、ステータスバーはありません)。

したがって、古いバージョンから iOS 7 に更新され、他のすべてのオプションを試したプロジェクトに取り組んでいる場合の私のアドバイスは、新しいプロジェクトを構築することです。

于 2014-04-01T18:59:34.820 に答える
1

2019年に...

ステータス バーのないアプリを作成するには、

info.plist をクリックし、右クリックして「行を追加」します。

次の設定で、これら 2 つを追加します。

ここに画像の説明を入力

それだけです。

于 2019-07-28T18:19:52.117 に答える
1

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

- (BOOL)prefersStatusBarHidden
    {
        return YES;
    }
于 2013-09-25T12:03:53.883 に答える
0

このコード、pod UIViewController+ODStatusBarを確認できます

于 2015-06-26T10:24:38.833 に答える
0

Swift 2.0+ IOS 9 の場合

override func prefersStatusBarHidden() -> Bool {
return true
}
于 2016-02-08T09:19:58.983 に答える
0

特定のviewControllerのステータスバーを非表示にするには

- (BOOL)prefersStatusBarHidden {
    return YES;
}

アプリケーションのステータスバーを非表示に設定する場合:

  • .plist およびセット内 にView controller-based status bar appearance設定: NOapplication: didFinishLaunchingWithOptions:[application setStatusBarHidden:YES];

    注: setStatusBarHidden: 非推奨

また

  • プロジェクト設定 -> 一般タブ -> 配置情報

    チェックHide Status barボックス。

于 2017-03-21T11:49:09.540 に答える
-1
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
application.statusBarHidden = YES;
return YES;
}
于 2013-12-26T21:13:54.977 に答える
-7

「Apple Developer Forums にログインできない」理由はわかりませんが、(NDA に違反することなく) Xcode を使用して statusBar を非表示にすることもできます。これは、アプリケーション ターゲットの一般的な設定です。ここに画像の説明を入力

于 2013-08-05T13:45:24.097 に答える