すべての提案を読み、いくつかのことを試した後、次の手順を使用して、特定のビューコントローラーでこれを機能させることができます。
最初の一歩:
info.plistを開き、「コントローラーベースのステータスバーの外観を表示する」という名前の新しいキーをNOに挿入します
2番目のステップ(単なる説明、これを実装する必要はありません):
通常、次のコードをAppDelegateのapplication(_:didFinishLaunchingWithOptions :)メソッドに配置します。
スウィフト2
UIApplication.sharedApplication().statusBarStyle = .LightContent
スウィフト3
UIApplication.shared.statusBarStyle = .lightContent
しかし、それはすべてのViewControllerに影響しstatusBarStyle
ます。
それで、これを特定のViewControllersのために機能させる方法-最終ステップ:
を変更するビューコントローラファイルを開き、statusBarStyle
次のコードをに配置しますviewWillAppear()
。
スウィフト2
UIApplication.sharedApplication().statusBarStyle = .LightContent
スウィフト3
UIApplication.shared.statusBarStyle = .lightContent
また、viewWillDisappear()
その特定のviewControllerのメソッドを実装し、次のコード行を追加します。
スウィフト2
override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.sharedApplication().statusBarStyle = UIStatusBarStyle.Default
}
スウィフト3
override func viewWillDisappear(_ animated: Bool) {
super.viewWillDisappear(animated)
UIApplication.shared.statusBarStyle = UIStatusBarStyle.default
}
この手順では、最初にstatusBarStyle
特定のビューコントローラーのを変更し、次に特定のビューコントローラーが非表示になったdefault
ときに変更します。を実装しないviewWillDisappear()
と、statusBarStyle
永続的に新しい定義値に変更されますUIStatusBarStyle.LightContent
Status bar is initially hidden = YES
info.plistファイルで設定した場合、「ビューコントローラーベースのステータスバーの外観= NO」はステータスバーが非表示になることに注意してください。