web-dev-qa-db-ja.com

iOS 7でプログラムでステータスバーを非表示にする方法

ios7 で、 statusbar をプログラムで非表示にするにはどうすればよいですか? XCode 4.6.1ios6.1 )を使用していますが、これをXCode自体に実装したいと思います。

35
Magesh

iOS7では、viewControllerに実装する必要があります

- (BOOL)prefersStatusBarHidden {
    return YES;
}
72
Nicolas Manzini

ステータスバーを非表示にして、plistでキー値「コントローラーベースのステータスバーの外観を表示」を設定できます。これが最も簡単な方法です。

またはUIApplicationクラスのstatusBarHiddenプロパティを使用して、コード内で非表示にできます。

[[UIApplication sharedApplication] setStatusBarHidden:YES];

Swift 3.

特定のView Controllerのステータスバーを非表示にします

override var prefersStatusBarHidden: Bool {
    get {
        return true
    }
}

アプリケーション全体でステータスベースを非表示にする

UIApplication.shared.isStatusBarHidden = true

プロジェクトの情報plistでキー値「コントローラーベースのステータスバーの外観を表示」NOを設定します。

32
Anand Mishra

View controller-based status bar appearanceに設定NO

-(void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
}

-(void)viewWillDisappear:(BOOL)animated {
    [super viewWillDisappear:animated];
    [[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationFade];
}
5
capikaw

特定のView Controllerで動的に非表示/表示する必要がある場合は、次のようなことができます。

(変更する必要がない場合は、- (BOOL)prefersStatusBarHiddenを使用して設定を返すことをお勧めします。)

// view controller header 
@interface MyViewController : UIViewController  {
    BOOL shouldHideStatusBar;
}
@end


@implementation

- (BOOL)prefersStatusBarHidden {
    return shouldHideStatusBar; // backed by your instance variable
}

- (void)setPrefersStatusBarHidden:(BOOL)hidden {
    shouldHideStatusBar = hidden;

    // Don't call this on iOS 6 or it will crash since the 
    // `setNeedsStatusBarAppearanceUpdate` method doesn't exist
    [self performSelector:@selector(setNeedsStatusBarAppearanceUpdate)];

    // [self setNeedsStatusBarAppearanceUpdate]; // (if Xcode 5, use this)
}

@end
3
zekel

IOS> = 7.0の場合、次のコードを使用します。

構文:

// Present in UIViewController of UIKit Frameworks
- (BOOL)prefersStatusBarHidden NS_AVAILABLE_IOS(7_0); // Defaults to NO

使用法:

- (BOOL)prefersStatusBarHidden {
    return YES;
}

IOS <7.0では、次のコードを使用します。

構文:

// Present in UIApplication of UIKit Frameworks
- (void)setStatusBarHidden:(BOOL)hidden withAnimation:(UIStatusBarAnimation)animation NS_AVAILABLE_IOS(3_2);

使用法:

[[UIApplication sharedApplication] setStatusBarHidden:NO withAnimation:UIStatusBarAnimationNone];
1

Swift 4.1

step1。 Set View controller-based status bar appearanceあなたのinfo.plist to [〜#〜] yes [〜#〜]

step2。UIViewControllerにコードを入力すると、UIViewControllerを提示するとステータスバーが非表示になります。

private var statusBarIsHidden = false

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    statusBarIsHidden = true
    setNeedsStatusBarAppearanceUpdate()
}
override var prefersStatusBarHidden: Bool {
    return statusBarStatus
}
1
alex02rt

on Swift 4:

    UIApplication.shared.isStatusBarHidden = ..true/false
0
ingconti

私の経験では、iOS 9/Xcode 7.3のinfo.plistファイルのコードと値の両方が必要です。

これをviewDidLoadメソッドに追加します。

[[UIApplication sharedApplication] setStatusBarHidden:YES];

これをinfo.plistファイルにブール値として追加し、NOに設定します。

View controller-based status bar appearance
0
Philip Borges

IOS 9.0以降およびSwiftを使用している場合。一部のView Controllerではステータスバーを非表示にしたいが、すべてではない場合-View controller-based status bar appearanceの値Info.plistYESに設定されます。それ以外の場合、すべてのView Controllerで同じパラメーターが使用されます。

prefersStatusBarHiddenのサブクラスでUIViewControllerをオーバーライドします

override var prefersStatusBarHidden: Bool {
    get {
        return true
    }
}

preferredStatusBarStyleを変更する場合も同様です。

override var preferredStatusBarStyle: UIStatusBarStyle {
    get {
        return .lightContent
    }
}
0
esesmuedgars

誰もがそれを行うために最も更新された方法を望んでいた場合(Swift 2.1および最新のXcode 7.2)

  1. 「info.plistでView Controllerベースのステータスバーの外観をNOに設定」

  2. UIApplication.sharedApplication()。statusBarHidden = true //アプリデリゲート内のどこかに配置します(applicationWillまたはDidFinishLaunchingWithOptions:

0
adam88labs

これを試して

[[UIApplication sharedApplication] setStatusBarHidden:YES];
0