我有一个带两个视图控制器的导航控制器,第一个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)
}
}
有多种方法可以解决您的问题,但我会说它们都不是最先进的,因为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)
}
}