TabBar项目显示RootController - 容器嵌入式NavigationController TableViewController堆栈

时间:2016-05-07 20:36:25

标签: ios swift tabs navigation

我有以下故事板:

enter image description here

如果用户导航到查看A1-2,然后选择选项卡B,然后选择选项卡A ...它们将显示TableViewController A1-2(他们最近的“选项卡A退出点”)。

如果他们导航到Tab B然后决定“返回”并选择Tab A,我希望他们能够使用TableViewController A1;不是他们之前导航到的地方(即TableViewController A1-2,或他们最近的“Tab A退出点”)。

基本上,选择的任何选项卡(当前选择的选项卡除外)都将显示该特定选项卡的根视图控制器。

我的故事板设置可以实现吗?

很多,非常感谢任何反馈。

附录:

我是否也可以在视图A1-2(或A1-​​1,B1-2,B1-1)中使用以下代码:

override func viewWillDisappear(animated: Bool) {
super.viewWillDisappear(animated)

    navigationController?.popToRootViewControllerAnimated(true)

}

如果用户切换标签,那么有效地删除根视图控制器上方的所有视图?并实现我想要的结果?

1 个答案:

答案 0 :(得分:1)

您可以在标签栏切换时关闭A1-2和A1-1,如果需要,可以反之亦然。

//set tab bar delegate and call this method
func tabBar(tabBar: UITabBar, didSelectItem item: UITabBarItem) {
    if item == tabBarB {
        //dismiss viewController A1-2 and A1-1
        self.view.window!.viewControllerA1?.dismissViewControllerAnimated(false, completion: nil)
    } else {
        //dismiss miss viewController B1-2 and B1-1
        self.view.window!.viewControllerB1?.dismissViewControllerAnimated(false, completion: nil)
    }
}

如果您正在寻找,请告诉我。