2017-08-12 91 views
0

我有一個標籤欄控制器,並在主視圖控制器我有一個導航控制器。當點擊標籤欄時關閉當前導航控制器

-Tab欄控制器

- HomeVC

--- VC1導航推 - > VC2

在VC1導航欄不隱藏,但裏面VC2是隱藏的。我用viewwillappear和viewwilld控制它將會消失。回到VC1沒有滑動,我的意思是點擊標籤欄homeVC圖標隱藏導航欄。我想解散或彈出當前的視圖控制器並返回到VC1。

+0

所以你想回到頂部視圖控制器選項卡更改時的選項卡? – Jaydeep

+1

爲什麼,你可以在'viewDidAppear()'中隱藏navigaitonBar從vc2並取消隱藏在vc1'viewDidAppear()'試試這個,讓我知道它的工作與否 –

+0

在VC1中,我設置navigationBar.isHidden = false在viewWillAppear它完成。 – Alper

回答

1

所以你可以通過UINavigationControllerpopToRootViewController來做到這一點。您必須在UITabBarDelegatetabBar(_ 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) 
    } 
} 
+0

嗯,我已經刪除了VC1中的viewWillAppear,並在tabbar控制器中編寫了你的​​代碼,我認爲它工作:) – Alper