私が試してみました
[[UIApplication sharedApplication] setStatusBarHidden:YES];
これは何もしません。
そして、Info.plist
ファイルで「View Controller-based status bar Appearance」を探しましたが、そこにはありません。
Xcode 6のアプリ内で、画面の上部にある白いステータスバー(時計とバッテリーの充電)を非表示にするにはどうすればよいですか?ありがとうございました!
そのplistエントリがない限り、各View Controllerでこのメソッドをオーバーライドする必要があります。
Objective-C
-(BOOL)prefersStatusBarHidden{
return YES;
}
スイフト2
override func prefersStatusBarHidden() -> Bool {
return true
}
Swift 3 +
override var prefersStatusBarHidden: Bool {
return true
}
設定することを忘れないでください(presentViewController:animated:completion:メソッドを呼び出してView Controllerを提示する場合):
Objective-C
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = YES;
Swift
vcToBeShownWithoutStatusbar.modalPresentationCapturesStatusBarAppearance = true
コンテナビューコントローラからステータスバーを変更する場合(例:子ビューコントローラでUINavigationController
またはUIViewController
)、ステータスバーを担当するビューコントローラを変更する場合は、childViewControllerForStatusBarHidden:
プロパティを使用する必要があります。 。例えば:
常にステータスバー管理を担当する最初のView Controllerインスタンスを設定します
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
}
Objective-Cの場合:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[application setStatusBarHidden:YES];
return YES;
}
Swiftの場合:
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey:Any]?) -> Bool {
application.statusBarHidden = true
return true
}
できた!アプリを実行すると、ステータスバーは不要になります!
コードを1行も書かずにステータスバーを非表示にできます。これには、info.plistに2つのエントリが必要です。
「コントローラーベースのステータスバーの外観を表示」を「いいえ」に設定
二番目は
「ステータスバーは最初は非表示」がYESに設定されています
Info.plistファイルに行がない場合は、その行を追加できます。 Xcodeのプロジェクトに移動し、「情報」セクションに移動して、既存の行の1つにカーソルを合わせます。 「+」ボタンが表示され、行を追加して「コントローラーベースのステータスバーの外観を表示」を入力できます。
Swift 3を使用するiOS 10の場合、次を使用する必要があります。
override var prefersStatusBarHidden: Bool {
get {
return true
}
}
コードを書く必要はありません...乾杯