unwind segue 与 popViewController 动画
unwind segue vs. popViewControllerAnimated
我有一个连接到多个 viewController 的地图视图。
我需要通过另一个按钮(而不只是后退按钮)实现 'unwind',所以我使用了:
self.navigationController?.popViewControllerAnimated(true)
我的问题是:如上所述,我是否应该费心尝试在父视图控制器中使用 prepareForUnwind
和 canPerformUnwindSegueAction
在代码中实现展开 + 从 [=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 来展示使用它的力量..
我有一个连接到多个 viewController 的地图视图。
我需要通过另一个按钮(而不只是后退按钮)实现 'unwind',所以我使用了:
self.navigationController?.popViewControllerAnimated(true)
我的问题是:如上所述,我是否应该费心尝试在父视图控制器中使用 prepareForUnwind
和 canPerformUnwindSegueAction
在代码中实现展开 + 从 [=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 来展示使用它的力量..