【问题标题】:TabBar Item To Show RootController - Container-Embedded NavigationController TableViewController Stacks显示 RootController 的 TabBar 项 - 容器嵌入式 NavigationController TableViewController Stacks
【发布时间】:2016-05-07 20:36:25
【问题描述】:

我有以下情节提要:

如果用户导航到视图 A1-2,然后选择 Tab B,然后选择 Tab A ...他们将看到 TableViewController A1-2(他们最近的“Tab 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)

}

因此,如果用户切换选项卡,那么有效地删除了根视图控制器上方的所有视图?并达到我想要的结果?

【问题讨论】:

    标签: ios swift tabs navigation


    【解决方案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)
        }
    }
    

    如果这是您要找的,请告诉我。

    【讨论】:

    • 如果你关闭根 (A1),它上面的所有 VC 也应该从堆栈中弹出,因此总是返回到 A1。
    • 超级好东西。伟大的逻辑。这正是我想要的。
    • 我最早的评论来自我同事的帐户。因此删除。再次感谢。解决方案对我来说是完美的。
    • 很高兴听到!快乐编码:)
    • 嗨@Julian Lee。我在采用您的代码时遇到了一些麻烦。我认为我的容器中有子视图控制器这一事实使事情变得更加复杂。我在我的问题中添加了一个附录,并提供了一个可能的替代方案。这也行吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2018-05-10
    • 2014-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多