2017-01-31 50 views
0

我有嵌入在NavigationController中的ViewController(VC_1)。在VC_1中有帶有單元格的TableView,每個單元格都有從詳細信息(VC_2)到ViewController的segue。從導航控制器中的ViewController和ViewController的兩個賽段

因此,當我觸摸VC_1中的任何單元格時,我會通過導航欄和後退按鈕獲取VC_2。

如果我有獨立的ViewController VC_3不在NavigationController內,該怎麼辦?它也具有與VC_1的單元具有相同標識符的具有與seg_2相同的單元的單元。 當我從VC_3到VC_2時,沒有看到帶有後退按鈕的導航欄。有什麼辦法來處理它?

enter image description here

+0

**當我從VC_3到VC_2時,我沒有看到帶有後退按鈕的導航欄。**如何從VC2展示/顯示VC3到VC3 –

+0

我可以從VC_1打開VC_3,之後我已經繼續從每個單元格到VC_2(種類=顯示詳細信息(例如替換)) – moonvader

+0

您不應該爲每個VC自己的導航控制器。要麼你不使用根VC的導航控制器來呈現其他VC,要麼你將每個VC嵌入到它自己的導航控制器中。請向我們展示一些代碼,以便我們弄清楚。 – dylanthelion

回答

1

你可以把另一個navigation controller右後方(VC_3)

希望這是有幫助:)

+0

但如果我希望在每種情況下都會有VC_2中的導航欄? – moonvader

+0

對不起,我誤解了你的問題,然後我再次閱讀,我編輯了我的答案。我不明白你的(VC_3)是不是在你的導航控制器,但我認爲即使它的導航控制器,你可以把另一個導航控制器後面的(VC_3) –

+0

我試過這個沒有運氣 – moonvader

0

如果從VC_1與顯示(例如推送)顯示VC_3 Segue公司導航欄必須出現在VC_3中。

如果我有獨立的ViewController VC_3,是不是裏面 NavigationController。

從這裏我明白你不需要VC_3上的導航欄。所以,你可以隱藏在VC3的viewWillAppear中的導航欄,並再次在viewWillDissappear在這個答案喜歡錶露出來:

How to hide a navigation bar from first ViewController in Swift?

然後,如果你從VC_3的SEGUE與展上VC_2(如推)你將在VC_2上有導航,沒有任何問題。

如果在此之後它仍然無法工作,請使用dequeueReusableCell withIdentifier方法檢查您是否正在VC_3中創建單元格。

+0

我想NavigationBar每次都可以在VC_2中看到。當我從VC_3變爲VC_2時,導航欄會出現問題。 – moonvader

+0

您是否隱藏故事板中VC_3的導航欄?如果從VC_1到VC_3的推送正確,則導航欄必須出現在故事​​板上。 – Jaumefm17

0

將新的導航控制器添加到您的故事板。現在,改變塞格斯像這樣:

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

如果TAT沒有任何意義,這是我的意思,改變當前從VC1去VC3的SEGUE並將其轉到新的導航控制器,然後連接該導航控制器並將vc3作爲其根視圖控制器。

0

嘗試把這個在有問題的VC:

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

,並確保塞格斯使用推。 :)

相關問題