2

私のアプリは白いステータスバーを使用しています。ホーム画面からアプリを起動すると(つまり、アプリが全画面表示になります)、これは正常に機能します。

アプリがまだ全画面表示になっているときに、2 つ目のアプリ (カレンダーなど) をスライドしても、ステータス バーは白のままです。その後、アプリとカレンダーの間で Split View を使用すると、ステータス バーが白のままになります。これはすべて正常に機能しています。

ただし、最初の全画面表示アプリがカレンダー (またはもちろん他のアプリ) で、Slide Over を使用して自分のアプリを表示すると、ステータス バーが黒くなります。その後、Split View を使用すると、ステータス バーは依然として黒く表示されます。最後に、アプリを左端までドラッグして全画面表示にすると、ステータス バーが正しく白に変わります。

要約すると、別のアプリを全画面表示し、スライド オーバーまたは分割ビューを使用して自分のアプリを表示すると、ステータス バーが間違った色で表示されます。

これは iOS 9 のバグですか、それとも何か不足していますか? スライドオーバー/分割ビューのステータスバーの色を別の場所で宣言するように記載されているドキュメントは見つかりませんでした。

ありがとう!

4

2 に答える 2

2

UISplitViewController から継承する新しいクラスを作成し、それを分割ビュー コントローラーのクラスとして割り当てることで、この問題を修正しました。このクラスでは、次のように preferredStatusBarStyle メソッドをオーバーライドします

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

ストーリーボードの値を変更しても機能しないのに、なぜこれが機能するのか実際には理解できません。

于 2015-10-20T11:31:51.267 に答える