从tabbar控制器跳回导航控制器 - swift 4

问题描述 投票:1回答:1

我有一个带两个视图控制器的导航控制器,第一个vc是登录,第二个vc包含tableView的一些信息。从第二个vc开始,它将导航到tabbar控制器(选项卡栏中的所有视图控制器都嵌入到导航控制器中)。现在当我点击第一个标签时,它应该回到第二个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)
   }
}
ios swift uinavigationcontroller uitabbarcontroller viewcontroller
1个回答
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)
    }
}

UPDATE

或者,如果您推动控制器,您可以试试这个

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)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.