問題很簡單,Profile viewController的狀態欄下方有一個NavigationBar。 我推動另一個viewController在當前的頂部。 這個新的viewController隱藏狀態欄。UINavigationBar在狀態欄下移動時另一個viewController隱藏狀態欄
當我回到配置文件viewController時,navigationBar已經向上移動了狀態欄高度的大小。
我試圖在我的viewWillAppear中強制佈局刷新,但它不起作用。
任何想法?
問題很簡單,Profile viewController的狀態欄下方有一個NavigationBar。 我推動另一個viewController在當前的頂部。 這個新的viewController隱藏狀態欄。UINavigationBar在狀態欄下移動時另一個viewController隱藏狀態欄
當我回到配置文件viewController時,navigationBar已經向上移動了狀態欄高度的大小。
我試圖在我的viewWillAppear中強制佈局刷新,但它不起作用。
任何想法?
實現所呈現視圖 - 控制和顯示狀態欄再來profileview控制器之前viewDidDisappear
。在plist文件隱藏狀態欄
override func viewWillDisappear(animated: Bool) {
UIApplication.sharedApplication().setStatusBarHidden(false, withAnimation: UIStatusBarAnimation.Fade)
}
代碼附加在你的應用程序:
<key>UIViewControllerBasedStatusBarAppearance</key>
<false/>
使用此下面的代碼,
override func viewWillDisappear(animated: Bool) {
navigationController?.setNavigationBarHidden(navigationController?.navigationBarHidden == false, animated: false)
}
希望它有幫助
好的謝謝!這幾乎是修復,實際上,如果我使用viewWillDisappear但它不在viewDidDisappear中,它就可以工作,但如果可能的話,我更願意在配置文件視圖控制器中管理佈局。因爲如果其他人再次創建隱藏狀態欄的另一個視圖...它會bug ... – Mikael
不客氣... :)這是正確的方法。如果有人在任何VC中隱藏狀態欄,那麼他必須實現viewdiddisappear或willdisappear以再次顯示它。這是唯一的標準解決方案。如果你管理配置文件視圖,目前這是配置文件視圖,但有人隱藏狀態欄在另一個視圖,它的基礎視圖不是配置文件視圖呢?所以最好實施willdisappear或diddisappear再次顯示狀態欄 – Lion
你可以使用viewWillDisappear更新你的答案,因爲它實際上不能與viewDidDisappear()一起工作。你是讓我走上正軌的人。這是相當可悲的,它是唯一的辦法,雖然... – Mikael