在界面生成器中,我有一個UITabBarController
,它被設置爲初始視圖控制器。在標籤欄控制器中,我鏈接了三個獨立的ViewController;兩個UIViewController
和一個UITableViewController
。我已將這三個視圖嵌入UINavigationController
之內,因爲這些視圖中的每一個都將最終延伸到新視圖。從一個ViewController繼續到Tab Bar Controller內的另一個ViewController?
問題:
我現在想用一個按鈕,原因請看錶視圖鏈接的UIViewController
的之一的UITableViewController
。這樣我可以將信息,即func prepareForSegue()
傳遞給表格視圖。我想將標籤欄控制器保持在底部,但是我不希望能夠通過位於視圖頂部的UIBarButtonItem
從當前的UITableViewController
回到之前的UIViewController
;這就是底部的標籤欄。但是每次我繼續「顯示」表格視圖(它實際上是表格視圖導航控制器的一個細節)時,表格視圖頂部和底部的導航欄消失。無論如何要防止這種情況發生?
我也嘗試過segue「Show」直接到表視圖,在這種情況下,標籤欄是可見的,但隨後它顯示在視圖頂部的「後退」按鈕以繼續發送回UIViewController
。我對接受只隱藏後退按鈕的解決方案猶豫不決,因爲我覺得當我想從表視圖導航到詳細視圖時,我會遇到問題,因爲我會繞過UITableViewController
的UINavigationController
。
任何解決方案將不勝感激。我一直試圖解決這個問題好幾個小時,而我即將把我的腦袋通過我的電腦屏幕。此外,我想在按鈕單擊上使用tabBarController?.selectedIndex
轉移到表視圖,然後使用NSUserDefaults
傳遞信息,但這是不可能的,因爲我會傳遞一個自定義對象,並且必須對每個對象進行編碼和解碼自定義字段。
感謝這工作...有點。我必須改變一件事。你不能像'!JarListTableViewController'那樣強制使用'UINavigationController'。而不是'讓tableViewController = navController as! JarListTableViewController'你必須說'讓tableViewController = navController.viewControllers [0] as! JarListTableViewController'。就這樣。如果你更新你的答案,我會upvote並接受它。 – Yonny
Woops,對不起。我忘了添加該部分。我實際上做了一個稍微不同的方式,我已經在上面進行了更正。希望你不會浪費太多時間在我的愚蠢錯誤上! – myles
無論哪種方式將工作,我只喜歡使用完整的單詞而不是數字。 – myles