如何在iOS App(Swift)中点击Tab栏项目时重定向到rootviewcontroller

时间:2015-10-12 07:35:22

标签: ios swift uitabbarcontroller uitabbar

我正在Swift中使用UITabBarUINavigationViewController实现一个iOS应用。现在面临一个问题,

如果我选择第一个标签,我会看到'A'ViewController,点击任何'A'的内容,我会重定向到'B'UINavigationViewController,现在如果我点击第二个选项卡,然后再次单击第一个选项卡,它显示'B'NavigationViewController。预计是,它应该显示'A'ViewController。如何实现?

3 个答案:

答案 0 :(得分:1)

@IBAction func itemB(sender: UIButton) {
    // do something 
    self.tabBarController?.selectedIndex = 0
}

答案 1 :(得分:1)

尝试实现didSelectViewController委托,然后选择'A ViewController'索引重定向到root viewcontroller。

  func tabBarController(tabBarController: UITabBarController, didSelectViewController viewController: UIViewController) {
    let index : Int = (tabBarController.viewControllers?.indexOf(viewController))!
    if index == 0
    {
        let navigationController = viewController as? UINavigationController
        navigationController?.popToRootViewControllerAnimated(true)
    }

}

Download Sample

答案 2 :(得分:1)

在Swift 3.1中

UITabBarControllerDelegate添加到TabBar类:

class YourClass: UITabBarController, UITabBarControllerDelegate {

后:

override func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {

    let yourView = self.viewControllers![self.selectedIndex] as! UINavigationController
    yourView .popToRootViewControllerAnimated(false) 

}