Ios7 在swift中关闭模式视图控制器后的Popview

Ios7 在swift中关闭模式视图控制器后的Popview,ios7,swift,popviewcontroller,Ios7,Swift,Popviewcontroller,我有一个导航控制器a,我在其上按下视图控制器B。从B我以模态方式显示视图控制器C。在我取消C后,我尝试返回到a。因此导航流是a->B->(呈现模态视图)->C。我在B中尝试了此代码,但没有成功: self.navigationController?.popToRootViewControllerAnimated(true) 有没有关于如何实现这一目标的建议 这种情况只发生在iOS7中 谢谢您必须关闭NavigationController中的模态视图控制器(C)和popToRootViewC

我有一个导航控制器a,我在其上按下视图控制器B。从B我以模态方式显示视图控制器C。在我取消C后,我尝试返回到a。因此导航流是a->B->(呈现模态视图)->C。我在B中尝试了此代码,但没有成功:

 self.navigationController?.popToRootViewControllerAnimated(true)
有没有关于如何实现这一目标的建议

这种情况只发生在iOS7中


谢谢

您必须关闭NavigationController中的模态视图控制器(C)和popToRootViewController。在C视图控制器中尝试以下代码:

    let presentingVC = self.presentingViewController!
    let navigationController = presentingVC is UINavigationController ? presentingVC as? UINavigationController : presentingVC.navigationController
    navigationController?.popToRootViewControllerAnimated(false)

    self.dismissViewControllerAnimated(true, completion: nil)
在这种情况下,用户将只看到解除模态视图控制器。导航控制器中的Pop到根视图控制器将在后台制作

另一个选项是禁用模态视图控制器,然后通过动画弹出到根视图控制器,然后用户将看到所有内容。 代码如下:

    let presentingVC = self.presentingViewController!
    let navigationController = presentingVC is UINavigationController ? presentingVC as? UINavigationController : presentingVC.navigationController


    self.dismissViewControllerAnimated(true, completion: { () -> Void in

        navigationController?.popToRootViewControllerAnimated(true)
        return
    })

很好的回答,演示也可以是一个超级控制器