![](/img/trans.png)
[英]How to enable Back Button on Viewcontroller after TabBarcontroller
[英]TabBar is hidden after going back to the initial ViewController of a TabBarController Using Segue
我有一個帶有三個表視圖控制器的標簽欄控制器,第二個 VC 嵌入在導航控制器中。 在第二個 VC 中,我使用這一行self.tabBarController?.tabBar.isHidden = true
隱藏了 tabBar,並且我創建了一個欄按鈕以返回到第一個視圖控制器,它是使用 segue 和模式演示的“home”VC。
我的問題是在點擊后退按鈕並從第二個 VC 返回主 VC 后,即使我將self.tabBarController?.tabBar.isHidden = false
放在主 VC 的 viewWillAppear 方法和第二個 VC 的 viewWillDisappear 方法中,tabBar 仍然隱藏.
這是我預期的結果與我得到的結果
如何讓標簽欄顯示?
當您使用模態演示segue 時,您正在創建一個全新的HomeViewController 實例。 新的 HomeViewController 未鏈接到層次結構中的 TabBarController。
這是您的初始視圖層次結構:
TabBarController
-> HomeVC
-> CreateVC (Navigation Controller)
-> CreateQuizVC
-> SavedVC
現在點擊后退按鈕后,您將獲得以下信息:
TabBarController
-> HomeVC
-> CreateVC (Navigation Controller)
-> CreateQuizVC
-> HomeVC(2)
-> SavedVC
您可以做的是,不要使用 segue 返回,而是在代碼中添加一個 IBAction 以編程方式設置 TabBar 的 selectedIndex,並將 Back UIBarButtonItem 鏈接到此 IBAction。
@IBAction func backButtonAction(_ backButton: UIBarButtonItem) {
// Keep in mind that the CreateQuizVC is embeded in a NavigationController.
// The NavigationController is the child of the TabBarController
navigationController?.tabBarController?.selectedIndex = 0
navigationController?.tabBarController?.tabBar.isHidden = false
}
但是,我的建議是您按照 Apple 的意圖使用 TabBar。 在展示 CreateQuizVC 時不要隱藏它,並使用 TabBar 在選項卡之間導航。 這將有助於用戶體驗,因為 iOS 上的每個人都期待 TabBar 的這種行為。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.