我正在使用随swift打包的标签栏控制器模板。我已将FirstViewController和SecondViewController嵌入到导航控制器中。我添加了第三个ViewController,它可以通过FirstViewController中的segue访问。当我在第三个ViewController中点击SecondViewController选项卡时,模拟器将我带到SecondViewController但是当我点击FirstViewController选项卡时,我又回到了第三个ViewController - 我想回到当我选择它时,FirstViewController的选项卡。实现这个的方法是什么?搜索我认为我应该使用的文档:
func tabBarController(_ tabBarController: UITabBarController,
shouldSelectViewController viewController: UIViewController) -> Bool
答案 0 :(得分:1)
Pop to root view when tab is selected。这个答案似乎很有用。
Swift代码:
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) -> Bool {
if let viewController = viewController as? UINavigationController {
viewController.popToRootViewController(animated: false)
}
}
答案 1 :(得分:0)
对于较新版本的Swift,委托函数应如下所示:
func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
if let viewController = viewController as? UINavigationController {
viewController.popToRootViewControllerAnimated(false)
}
}
您的类必须与UITabBarControllerDelegate
协议保持一致,并且应在加载过程中设置delegate属性。