2016-11-24 4 views
-1

メインの初期ViewControllerには白いステータスバーが必要ですが、別のViewControllerで非表示にすることもできます。私はどちらか一方をすることができますが、同時に両方を行うことはできません。助言がありますか?iOSはステータスバーを白に設定し、別のViewControllerで非表示にします

は私が のInfo.plist

override func preferredStatusBarStyle() -> UIStatusBarStyle { 
     return .LightContent 
} 

にNOに

ビューコントローラベースのステータスバーの外観キーを設定することにより、白にそれを設定し、(それを隠すために別のViewControllerでモーダルに表示されます)私は、

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

以前にInfo.plistに追加したキーを削除しない限り非表示にはなりませんが、キーを削除するとステータスバーは黒に戻ります。


EDIT-MYソリューション: ビューコントローラクラスは、私はナビゲーションコントローラに埋め込まれ、メインビューコントローラを持っているので、私の修正プログラムは、同じメソッドをオーバーライドすることでしたが、ナビゲーションコントローラの代わりに、私の場合で働いていませんでした問題のビューコントローラの

extension UINavigationController { 
    public override func preferredStatusBarStyle() -> UIStatusBarStyle { 
     return .LightContent 
    } 
} 
+0

?私はswift3以前のバージョンを意味しますか? – Rajat

+0

swift 2.2、xcode 7.3 ...また、しばらくの間xcode7.3に留まる必要があります。 – sweepez

+0

これにInfo.plistを使用しないでください。提供されているView Controllerメソッドを使用します。 – matt

答えて

0

あなたはInfo.plistの

にNOに

ビューコントローラベースのステータスバーの外観キーを追加する場合は、ステータスバーの外観を変更する[UIApplication setStatusBarHidden:withAnimation:][UIApplication setStatusBarStyle:animated:]を使用する必要があります。それはAppleのdocumentに言われて、あなたの方法は

と呼ばれることはありません。

UIViewControllerBasedStatusBarAppearance(ブール - iOSの)ステータスバーの外観は現在のビューコントローラによって好まスタイルに基づいているかどうかを指定しますステータスバーの下に表示されます。このキーが存在しないか、その値がYESに設定されている場合、View Controllerはステータスバーのスタイルを決定します。キーがNOに設定されている場合、View Controller(またはアプリ)はそれぞれUIApplicationオブジェクトを使用してステータスバースタイルを明示的に設定する必要があります。

UIViewControllerBasedStatusBarAppearanceキーはView controller-based status bar appearanceと同じです。

キーを追加しないと、メソッドが機能するはずです。これらの2つのViewControllerで両方のメソッドを追加し、ブレークポイントを追加して、それらが誤って呼び出されたりオーバーライドされているかどうかを確認してください。スウィフト3.0 Xcodeで

コード私にとっては8.2作品:あなたに取り組んでいるのXcodeのバージョン

override open var preferredStatusBarStyle: UIStatusBarStyle { 
    return .lightContent 
}  


override open var prefersStatusBarHidden: Bool { 
    return true 
} 
+0

ありがとう、今試してみることができません、おそらく今夜も試してみましょう(また、あなたの答えを投票ダウンした私ではなかった)。物事は、私がplistからキーを削除すると、ステータスバーは黒のままです。また、xcode 7.3と[UIApplication setStatusBarHidden:withAnimation:]で動作しているimは廃止予定です。 – sweepez

+0

ありがとう、私はあなたの答えに投票した人ではなかったと言ったように。また、NavigationControllerにVCが埋め込まれているため、View Controllerクラスが機能していないという問題を発見しました。 – sweepez

関連する問題