3

我認爲顯示屏幕截圖有助於更好地理解問題。ios swift - 導航條背景變黑時返回導航欄隱藏的屏幕

所以上下文如下:

我在一個導航控制器,應用程序的設置屏幕(其中有一個導航項目),以及當我們點擊後退按鈕,我們回去該應用程序的主屏幕(爲此,我在主屏幕的viewWillAppear中隱藏了導航欄,因爲我自己正在構建自定義標題視圖)。

只要我點擊後退按鈕,導航欄會立即消失,我會看到一個黑色的矩形,直到顯示主屏幕的動畫完成。

你知道我怎樣才能避免出現這個黑色的矩形?

希望這些問題很有意義。

截圖

這裏是初始設置畫面:

enter image description here

當我們磁帶上的後退按鈕,出現這種情況...幫助:d

我知道這段代碼很可能是對錯誤負責,但我absol巧妙地需要將navigationBar隱藏在前一個屏幕上。

覆蓋FUNC viewWillAppear中(_動畫:BOOL){

navigationController?.isNavigationBarHidden = true 

}

enter image description here

+1

你試過隱藏導航欄的動畫方法'setNavigationBarHidden(_ hidden:Bool,animated:Bool)'?請參閱[文檔](https://developer.apple.com/reference/uikit/uinavigationcontroller/1621885-setnavigationbarhidden?language=swift) – paulvs

+0

我很高興它幫助Edouard :-)在附註中,當您發現評論回答一個問題,您可以要求評論者將其發佈爲答案並接受。只是一個想法,不過這次不要擔心。 – paulvs

+1

謝謝。哦,對此抱歉。請發佈這個答案:)我馬上刪除我的。一般來說,我是Stack的新手,仍然在學習常用的練習。再次感謝。 –

回答

9

你試過隱藏導航欄setNavigationBarHidden(_ hidden: Bool, animated: Bool)的動畫方法是什麼?

4

對於Swift3.0

添加以下代碼在第一的ViewController

override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 
    self.navigationController?.setNavigationBarHidden(true, animated: true) 
    } 

添加下面的代碼在第二的ViewController

func backButtonPressed() { 
     self.navigationController?.setNavigationBarHidden(false, animated: false) 
     self.navigationController?.popViewController(animated: true) 
    }