更改视图控制器以维护导航层次

时间:2015-09-24 13:38:44

标签: ios swift uiviewcontroller segue

使用下图作为参考,当用户按下按钮时,我试图从控制器A转到控制器B-2。

我对iOS很新,所以我遇到了一些问题。 如果我按下B-2控制器或创建一个segue,则不遵守层次结构,并且B-2控制器不在导航控制器内(B)。

我希望用户仍然具有导航功能,并且仍然可以使用后退按钮返回控制器B-1。

控制器A& B都在相同的Tab控制器(Z)

我怎样才能做到这一点?

Diagram

1 个答案:

答案 0 :(得分:0)

最后我找到了这个解决方案:

从控制器A我得到父(Z),将活动控制器设置为第二个孩子(B)并得到他的孩子(B-1)。

一旦我有B-1,我可以调用执行segue,它的效果非常好。 层次结构是正确的,它正是我想要的行为

代码是这个

if let tab = self.parentViewController as? UITabBarController{
            tab.selectedIndex = 1
            if let one = tab.childViewControllers[1] as? UINavigationController{
                if let two = one.childViewControllers[0] as? MatchTableViewController{
                    two.performSegueWithIdentifier("open_chat_view", sender: matchModel)
                }
            }
        }