TabBar应该选择ViewController问题

时间:2015-01-04 20:44:15

标签: swift uinavigationcontroller uitabbarcontroller viewcontroller

我正在使用随swift打包的标签栏控制器模板。我已将FirstViewController和SecondViewController嵌入到导航控制器中。我添加了第三个ViewController,它可以通过FirstViewController中的segue访问。当我在第三个ViewController中点击SecondViewController选项卡时,模拟器将我带到SecondViewController但是当我点击FirstViewController选项卡时,我又回到了第三个ViewController - 我想回到当我选择它时,FirstViewController的选项卡。实现这个的方法是什么?搜索我认为我应该使用的文档:

    func tabBarController(_ tabBarController: UITabBarController,
     shouldSelectViewController viewController: UIViewController) -> Bool

2 个答案:

答案 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属性。