我有一个导航控制器 A,我在其上推视图控制器 B。从 B 我模态地呈现视图控制器 C。在我关闭 C 后,我尝试回到 A。因此导航流程是 A->B ->(呈现 ModalView )-> C。我在B中尝试了这段代码但没有成功:
self.navigationController?.popToRootViewControllerAnimated(true)
关于如何实现这一目标的任何建议?
这种情况只发生在iOS7
谢谢
我有一个导航控制器 A,我在其上推视图控制器 B。从 B 我模态地呈现视图控制器 C。在我关闭 C 后,我尝试回到 A。因此导航流程是 A->B ->(呈现 ModalView )-> 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)
在这种情况下,用户将看到只是关闭模态视图控制器。在导航控制器中弹出到根视图控制器将在背景中进行。
另一种选择是关闭模态视图控制器,然后使用动画弹出到根视图控制器,然后用户将看到所有内容。下面的代码:
let presentingVC = self.presentingViewController!
let navigationController = presentingVC is UINavigationController ? presentingVC as? UINavigationController : presentingVC.navigationController
self.dismissViewControllerAnimated(true, completion: { () -> Void in
navigationController?.popToRootViewControllerAnimated(true)
return
})