0

理解できないような非常に奇妙なバグが発生しています。iOS 7 のアプリ全体で、ナビゲーション バーは希望通りに表示されます (グラデーションの背景、ステータス バーの下に配置)。ただし、ビデオまたは MFMailComposeViewController がモーダルに表示され、その後閉じられると、そのビュー スタックのナビゲーション バーは iOS 7 のステータス バーの後ろに戻る方法に戻り、その下に余分なバーが表示されます。この説明が意味をなさない場合のために、ビデオが表示/非表示になる前 (上) と後 (下) のナビゲーション バーの写真を次に示します。

ナビゲーション バーの画像

ナビゲーション バーの UIAppearance をアプリ全体で設定しただけでなく、viewWillAppear で再設定しようとしても無駄になりました。また、edgesForExtendedLayout を UIRectEdgeNone に設定し、info.plist で statusBarStyle を Black Opaque に設定し、info.plist でビュー コントローラー ベースのステータス バーの外観を NO に設定しました。

助言がありますか?

ありがとう、

-スティーブン

4

1 に答える 1

0

[self setNeedsStatusBarAppearanceUpdate];ビューコントローラーのメソッドを呼び出すとviewWillAppear、問題が解決すると思います。しかし、あなたの質問の日付に気付いたので、あなたはおそらくずっと前にそれを解決しました:)

これですべての場合に問題が解決するとは限らないことがわかりました。私が見ているケースでそれを解決しているように見えるのは次のとおりです。

ビューコントローラーのメソッドに追加[self.view setNeedsLayout];します。viewWillAppear:それを入れてもviewDidAppear:うまくいきませんでした(理由はわかりません-遅すぎますか?)。

于 2014-05-12T19:29:49.843 に答える