簡體   English   中英

導航控制器中ViewController和ViewController的兩個問題

[英]Two segues from ViewController and ViewController in Navigation Controller

我在NavigationController中嵌入了ViewController(VC_1)。 在VC_1中,有帶有單元格的TableView,並且每個單元格都有到ViewController的詳細信息(VC_2)。

因此,當我觸摸VC_1中的任何單元格時,就會獲得帶有導航欄和后退按鈕的VC_2。

如果我在NavigationController中沒有單獨的ViewController VC_3,該怎么辦。 它還具有對VC_2進行隔離的單元,其標識符與VC_1的單元具有相同的標識符。 從VC_3轉到VC_2時,看不到帶有后退按鈕的導航欄。 有什么處理方法?

在此處輸入圖片說明

您可以在(VC_3)后面放置另一個navigation controller

希望這對您有所幫助:)

如果您通過“顯示”(例如“推送”)順序從VC_1中顯示VC_3,則導航欄必須出現在VC_3中。

如果我在NavigationController中沒有單獨的ViewController VC_3,該怎么辦。

從這里我了解到您不需要VC_3上的導航欄。 因此,您可以將導航欄隱藏在VC3的viewWillAppear中,並再次在viewWillDissappear中顯示,如下所示:

如何在Swift中從第一個ViewController隱藏導航欄?

然后,如果使用Show(例如Push)從VC_3到VC_2進行選擇,則可以在VC_2上進行導航。

如果在此之后仍然無法正常工作,請使用dequeueReusableCell withIdentifier方法檢查您是否在VC_3中很好地創建了單元。

在您的故事板上添加一個新的導航控制器。 現在,如下更改segue:

Vc_1->新導航控制器-> vc_3

如果tat沒有意義,這就是我的意思,請將當前從vc1更改為vc3,並將其轉到新的導航控制器,然后連接該導航控制器,並將vc3設為根視圖控制器。

嘗試將其放入有問題的VC中:

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

並確保segue正在使用推送。 :)

暫無
暫無

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

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