我有一個標籤欄控制器,並在主視圖控制器我有一個導航控制器。當點擊標籤欄時關閉當前導航控制器
-Tab欄控制器
- HomeVC
--- VC1導航推 - > VC2
在VC1導航欄不隱藏,但裏面VC2是隱藏的。我用viewwillappear和viewwilld控制它將會消失。回到VC1沒有滑動,我的意思是點擊標籤欄homeVC圖標隱藏導航欄。我想解散或彈出當前的視圖控制器並返回到VC1。
我有一個標籤欄控制器,並在主視圖控制器我有一個導航控制器。當點擊標籤欄時關閉當前導航控制器
-Tab欄控制器
- HomeVC
--- VC1導航推 - > VC2
在VC1導航欄不隱藏,但裏面VC2是隱藏的。我用viewwillappear和viewwilld控制它將會消失。回到VC1沒有滑動,我的意思是點擊標籤欄homeVC圖標隱藏導航欄。我想解散或彈出當前的視圖控制器並返回到VC1。
所以你可以通過UINavigationController
的popToRootViewController
來做到這一點。您必須在UITabBarDelegate
的tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem)
方法中處理此問題。
override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
if let rootView = self.viewControllers!["Index of VC1 Controller"] as? UINavigationController {
rootView.popToRootViewController(animated: false)
}
}
嗯,我已經刪除了VC1中的viewWillAppear,並在tabbar控制器中編寫了你的代碼,我認爲它工作:) – Alper
所以你想回到頂部視圖控制器選項卡更改時的選項卡? – Jaydeep
爲什麼,你可以在'viewDidAppear()'中隱藏navigaitonBar從vc2並取消隱藏在vc1'viewDidAppear()'試試這個,讓我知道它的工作與否 –
在VC1中,我設置navigationBar.isHidden = false在viewWillAppear它完成。 – Alper