我正在Swift中使用UITabBar
和UINavigationViewController
实现一个iOS应用。现在面临一个问题,
如果我选择第一个标签,我会看到'A'ViewController
,点击任何'A'的内容,我会重定向到'B'UINavigationViewController
,现在如果我点击第二个选项卡,然后再次单击第一个选项卡,它显示'B'NavigationViewController
。预计是,它应该显示'A'ViewController
。如何实现?
答案 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)
}
}
答案 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)
}