unwind segue 与 popViewController 动画

unwind segue vs. popViewControllerAnimated

我有一个连接到多个 viewController 的地图视图。

我需要通过另一个按钮(而不只是后退按钮)实现 'unwind',所以我使用了:

self.navigationController?.popViewControllerAnimated(true)

我的问题是:如上所述,我是否应该费心尝试在父视图控制器中使用 prepareForUnwindcanPerformUnwindSegueAction 在代码中实现展开 + 从 [=20 按住 ctrl 拖动=] 退出情节提要?如果是,为什么?

基本上,如果您只是 dimissing 呈现 UIViewController 或从导航堆栈中弹出 UIViewController,您不需要使用展开转场,尽管它对你.

但是想想这样一种情况,其中有 UINavigationControllers A,B,C 然后是 RootViewController R

然后想一个条件

 (Present) R -> A
 (Push) AR -> XVController
 (Push)XVController -> B
 (Present)BR-> YVContoller
...and so on..

现在,如果您想返回 YVController 到刚刚开始的项目 RootViewController,up.There 是不可能的,因为 popToRootViewController 会弹出到 B UINavigationController 的导航堆栈。现在你要做什么..使用委托或更改 window RootViewController 这不是一个好主意.

所以你需要使用 unwind segue 来克服这个问题。一个示例 project 来展示使用它的力量..