2016-05-25 5 views
0

問題は簡単です。プロファイルviewControllerにはステータスバーのすぐ下にNavigationBarがあります。 別のviewControllerを現在のものの上に押します。 この新しいviewControllerは、ステータスバーを非表示にします。別のviewControllerがステータスバーを隠しているときに、UINavigationBarがステータスバーの下を移動する

私がProfile viewControllerに戻ると、ナビゲーションバーがステータスバーの高さのサイズだけ上に移動しました。

私はviewWillAppearでレイアウトを強制的に更新しようとしましたが、動作しません。

アイデア?

enter image description here

答えて

0

再びその提示のViewControllerとshowステータスバーにviewDidDisappearを実装する前に、コントローラをprofileviewに来ます。

override func viewWillDisappear(animated: Bool) { 


    UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.Fade) 
} 
+0

その有用ありがとう願っています!実際には、viewWillDisappearを使用してもviewDidDisAppearでは使用できない場合は機能しますが、可能であれば、プロファイルビューコントローラ自体のレイアウトを管理することをお勧めします。他の人がステータスバーを隠している別のビューを作成した場合、バグが発生します。 – Mikael

+0

これは正しい方法です:)これは正しい方法です。誰かが任意のVCのステータスバーを隠す場合、彼はviewdiddisappearを実装する必要がありますか、それを再表示するwilldisappear。これが唯一の標準ソリューションです。プロファイルビューを管理している場合、これはプロファイルビューですが、別のビューでステータスバーを非表示にしていて、そのベースビューはプロファイルビューではありません。ので、willdisappearやdiddisappearを実装してステータスバーを再度表示する方が良い – Lion

+0

viewDisDisPear()で実際には動作しないので、viewWillDisappearで回答を更新できますか?あなたは私を正しい軌道に乗せる人でした。それはそれを行う唯一の方法であることは非常に悲しいです... – Mikael

0

アプリでplistファイル非表示ステータスバーにコードを追加します。このコードは以下の

<key>UIViewControllerBasedStatusBarAppearance</key> 
<false/> 
1

使用、

override func viewWillDisappear(animated: Bool) { 
    navigationController?.setNavigationBarHidden(navigationController?.navigationBarHidden == false, animated: false) 
} 

は、[OK]を

関連する問題