从标签栏控制器跳回导航控制器-迅捷4

时间:2018-09-15 16:51:34

标签: ios swift uinavigationcontroller uitabbarcontroller viewcontroller

我有一个带有两个视图控制器的导航控制器,第一个vc是login,第二个vc包含一些有关tableView的信息。从第二个vc它将导航到选项卡控制器(选项卡栏中的所有视图控制器都嵌入到导航控制器中)。现在,当我单击第一个选项卡时,它应该回到第二个vc。我尝试过解雇,但无法正常工作。请说明一下。

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
print("the selected index is : \(tabBar.items?.index(of: item))")
if tabBar.items?.index(of: item) == 0{
    self.dismiss(animated: true, completion: nil)
   }
}

1 个答案:

答案 0 :(得分:0)

有多种方法可以解决您的问题,但是我想说它们都不是最新技术,因为TabbarController中的每个Tab都应具有自己的NavigationController。 :)

也许这种方式对您有用:

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    print("the selected index is : \(tabBar.items?.index(of: item))")
    if tabBar.items?.index(of: item) == 0 {
        let vc = YourSecondViewController() //or get it from your Storyboard
        self.navigationController.setViewControllers([vc], animated: true)
    }
}

更新

或者,如果您按了控制器,则可以尝试这个

override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) {
    print("the selected index is : \(tabBar.items?.index(of: item))")
    if tabBar.items?.index(of: item) == 0 {
        self.navigationcontroller.popToRootViewController(animated: true)
    }
}