1

我有一个导航控制器 A,我在其上推视图控制器 B。从 B 我模态地呈现视图控制器 C。在我关闭 C 后,我尝试回到 A。因此导航流程是 A->B ->(呈现 ModalView )-> C。我在B中尝试了这段代码但没有成功:

 self.navigationController?.popToRootViewControllerAnimated(true)

关于如何实现这一目标的任何建议?

这种情况只发生在iOS7

谢谢

4

1 回答 1

3

您必须在 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)

在这种情况下,用户将看到只是关闭模态视图控制器。在导航控制器中弹出到根视图控制器将在背景中进行。

另一种选择是关闭模态视图控制器,然后使用动画弹出到根视图控制器,然后用户将看到所有内容。下面的代码:

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


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

        navigationController?.popToRootViewControllerAnimated(true)
        return
    })
于 2015-03-18T14:29:11.787 回答