TabBar shouldSelectViewController 问题

TabBar shouldSelectViewController Issues

我正在使用 swift 附带的选项卡栏控制器模板。我已将 FirstViewController 和 SecondViewController 嵌入到导航控制器中。我添加了第三个 ViewController,它由第一个 ViewController 的 segue 访问。当我在第三个 ViewController 并点击第二个 ViewController 选项卡时,模拟器会将我带到第二个 ViewController 但当我点击第一个 ViewController 选项卡时,我'我回到了第三个 ViewController - 当我 select 它是选项卡时,我想回到第一个 ViewController。实现这个的方法是什么?搜索我认为我应该使用的文档:

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

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)
   }
}

对于 Swift 的较新版本,委托函数应如下所示:

func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
    if let viewController = viewController as? UINavigationController {
        viewController.popToRootViewControllerAnimated(false)
    }
}

您的 class 必须与 UITabBarControllerDelegate 协议一致,并且应在加载过程中设置委托 属性。