2017-06-18 12 views
1

Iは、ルート・ビュー・コントローラとしてUITabBarControllerを有します。各タブには、ナビゲーションコントローラの内部に埋め込まれたビューコントローラがあります。私のナビゲーションバーは暗い色ですので、ステータスバーを.lightContentに設定する必要があります。私はまた、動的にステータスバーを非表示にする必要があります。光コンテンツに設定されたステータスバーを、動的に表示/非表示(UINavigationControllersとUITabBarController)を示し

私は「NO」の「ビュー・コントローラ・ベースのステータスバーの外観」を設定した場合、私は「.lightContent」に正しくステータスバーを設定することができますが、私は動的にステータスバーを非表示にすることはできません。

私は、「ビュー・コントローラ・ベースのステータスバーの外観を」設定するとナビゲーションバーが存在しない場合は、「YES」、ステータスバーには唯一の「.lightContent」に設定されますします。

これは私がステータスバーを表示または非表示にするには、各ビューコントローラで使用するものです。

var shouldHideStatusBar: Bool = false { 
    didSet { self.setNeedsStatusBarAppearanceUpdate() } 
} 
override var prefersStatusBarHidden: Bool { return shouldHideStatusBar } 
override var preferredStatusBarUpdateAnimation: UIStatusBarAnimation { return .slide } 
override var preferredStatusBarStyle: UIStatusBarStyle { return .lightContent } 

私も試してみました:

navigationController .navigationBar.barStyle = .black

を?ステータスバーを.lightContentに設定するには、私が紛失しているものがなければならず、ステータスバーを動的に表示および非表示にできる必要があります。

UIApplication.shared.setStatusBarHidden(true, with: .slide) 

ない理想的な、しかし作品:

答えて

0

は非推奨メソッドを使用するようになりました。うまくいけば、誰かが廃止予定のメソッドに頼ることなく解決策を持っています。

関連する問題