1. ホーム
  2. objective-c

iOS 8アプリでステータスバーを隠す

2023-11-03 08:41:53

質問

私は

[[UIApplication sharedApplication] setStatusBarHidden:YES]; 

これは何もしません。

そして、私は自分の Info.plist ファイルにある "ビューコントローラベースのステータスバー外観" を探しましたが、ありませんでした。

Xcode 6のアプリ内で画面上部の白いステータスバー(時計とバッテリー充電がある)を隠すにはどうしたらよいでしょうか?ありがとうございます!

どのように解決するのですか?

plistに記述していない場合は、各ビューコントローラでこのメソッドをオーバーライドする必要があります。

Objective-C

-(BOOL)prefersStatusBarHidden{
    return YES;
}

スウィフト2

override func prefersStatusBarHidden() -> Bool {
    return true
}

Swift 3+

override var prefersStatusBarHidden: Bool {
    return true
}

そして、(ビューコントローラを表示する際に presentViewController:animated:completionを呼び出すことです。 メソッドを呼び出すことで)。

Objective-C

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;

スウィフト

vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true

ドキュメンテーション https://developer.apple.com/reference/uikit/uiviewcontroller/1621453-modalpresentationcapturesstatusb

ステータスバーをコンテナビューコントローラから変更する場合 (例. UINavigationController または UIViewController 子ビューコントローラの場合)、ステータスバーを担当するビューコントローラを変更したい場合は childViewControllerForStatusBarHidden: プロパティを使用します。例えば

ステータスバーの管理を常に担当する最初のビューコントローラインスタンスを設定します。

Objective-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return childViewControllers.first; // or viewControllers.first
}

スウィフト2

override var childViewControllerForStatusBarHidden() -> UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

Swift 3+

override var childViewControllerForStatusBarHidden: UIViewController? {
    return childViewControllers.first // or viewControllers.first
}

ステータスバーの管理を担当するコンテナビューコントローラを設定する

Objective-C

- (UIViewController *)childViewControllerForStatusBarHidden {
    return nil;
}

スウィフト2

override func childViewControllerForStatusBarHidden() -> UIViewController? {
    return nil
}

Swift 3+

override var childViewControllerForStatusBarHidden: UIViewController? {
    return nil
}

ドキュメンテーション https://developer.apple.com/documentation/uikit/uiviewcontroller/1621451-childviewcontrollerforstatusbarh