[英]TabBarController disappears when I segue back to the view from another view
我有一個嵌入在導航控制器中的viewController。 然后將此導航控制器嵌入到選項卡欄控制器中。
我有另一個不應從tabBarController訪問的viewController。 它只能使用按鈕從第一個viewController訪問。 在secondViewController中,我制作了一個UIBarButtonItem移回原始視圖。 從第一個視圖到第二個視圖,反之亦然,我使用情節提要參考來在視圖之間來回移動。
但是,當我從第一個視圖移動到第二個視圖時,選項卡欄控制器消失了(應該如此)。 當我回到第一個視圖時,選項卡欄控制器消失,並且無法再在選項卡之間移動。
我試過包括:
self.hidesBottomBarWhenPushed = false
在第一個視圖上
self.hidesBottomBarWhenPushed = true
在第二個觀點
似乎沒有任何效果。 每當我從第二個視圖移動到第一個視圖時,選項卡欄控制器就會消失。
您遵循的是錯誤的層次結構。 您實際上是在使用海賊來回走動。 每次您嘗試返回第一個控制器時,都會創建一個新實例。
讓我們說清楚:
您需要遵循以下方法:
1您有兩個控制器A和B。
2在控制器A的viewDidLoad或viewWillAppear中使用self.hidesBottomBarWhenPushed = true。
3控制器A嵌入在導航控制器中,該控制器進一步嵌入在UITabBarController中。
點擊控制器A中的按鈕,您需要按入控制器B。因此,您可以為此使用segue或以編程方式執行此操作,例如:
let controllerB = B()
A.navigationController?.pushViewController(controllerB, animated: true)
4在水龍頭UIBarButtonItem上返回至控制器A。 因此,您在UIBarButtonItem動作中的代碼應類似於:
self.navigationController?.popViewController(animated: true)
請記住,您不應該搜尋返回上一個控制器。
你應該使用
override func viewWillDisappear(_ animated: Bool) {
self.tabBarController?.tabBar.isHidden = false
}
在放置后退按鈕的那個控制器中,我正在其中一個應用程序中使用確切的場景。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.