iOS-如何優雅的隱藏主頁面的導航欄,而只展現詳細頁面的導航欄(UINavigationBar)

現實開發中常常有這樣的需求:bash

主頁面是個圖片,用戶點擊圖片中某個按鈕跳轉頁面,不但願主頁面的導航欄礙事。app

需求轉化一下就是這樣:ide

隱藏第一個頁面的導航欄,展現第二個頁面的導航欄,而且在導航過渡的時候展現順暢的動畫效果。

可能不少人會想到用navigationBar的isHidden屬性:

或在第一頁面對應的代碼區域:

navigationController?.navigationBar.isHidden = true
複製代碼

但運行後發現,第二個頁面的導航欄也沒有了。函數

目前爲止發現的最優雅的作法:

在第一個頁面的viewWillAppear和viewWillAppear生命週期函數裏面各加上一句:動畫

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

override func viewWillDisappear(_ animated: Bool) {
    super.viewWillDisappear(animated)
    navigationController?.setNavigationBarHidden(false, animated: animated)
}
複製代碼

效果:

廣告時間:

你們若是正好想學iOS開發的話,能夠來看看小弟的iOS視頻教程(永久更新+售後輔導): m.cctalk.com/inst/s9vfhe…spa

相關文章
相關標籤/搜索