簡體   English   中英

隱藏和顯示導航欄以顯示特定的視圖,而不會產生動畫效果

[英]Hide and show navigation bar for specific view without laggy animation

有沒有一種方法可以在一個視圖上顯示導航視圖,而不能在另一個視圖上同時顯示呢?

問題:我有兩個視圖控制器-表視圖和描述視圖(在單元格單擊時調用)。

表格有一個導航欄,而說明視圖-沒有它。

表格檢視:

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.navigationController?.isNavigationBarHidden = false
}

說明視圖控制器:

override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.isNavigationBarHidden = true
}

一切正常,但是當我向后滑動半屏返回表格時(保持手指在屏幕上,同時觀看兩個視圖)-我看不到導航欄(該代碼可以按預期工作),而當我松開手指時-整個桌子視圖跳轉,因為顯示了導航欄。

有沒有一種方法可以保持在描述視圖中始終看不到導航欄,而在表格視圖中始終看到它?

override func viewDidAppear(_ animated: Bool) {
    super.viewDidAppear(animated)

    self.navigationController?.setNavigationBarHidden(false, animated: true)
}



override func viewWillAppear(_ animated: Bool) {
    super.viewWillAppear(animated)

    self.navigationController?.setNavigationBarHidden(true, animated: true)
}

您可以在進行搜索時隱藏導航欄(之前)。 如果您以編程方式進行操作:

yourVCToBePushed.navigationController?.isNavigationBarHidden = true

如果要在情節提要中執行此操作,請在prepareForSegue中進行類似的操作:

let yourVCToBePushed = segue.destination as! YourVCToBePushed (type)
   yourVCToBePushed.navigationController?.isNavigationBarHidden = true

您也可以在tableView標頭中創建自己的“ navigationView”,然后在其中添加按鈕。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM