我有一个连接到多个viewControllers的mapview。
我需要实现“放松”。从另一个按钮(而不是后退按钮),所以我使用:
self.navigationController?.popViewControllerAnimated(true)
我的问题是:正如上面的工作,我是否应该在父视图控制器中使用prepareForUnwind
和canPerformUnwindSegueAction
来实现在代码中实现展开,+从viewController中拖动以在Storyboard中退出?如果是这样,为什么?
答案 0 :(得分:3)
基本上,如果您只是dimissing
呈现UIViewController
或从导航堆栈中弹出UIViewController
,您就不需要使用展开segue,尽管它对您来说也是如此。
但想想有UINavigationControllers
A,B,C 然后是RootViewController
R
然后想一个条件
(Present) R -> A
(Push) AR -> XVController
(Push)XVController -> B
(Present)BR-> YVContoller
...and so on..
现在,如果你想回到你刚刚启动的项目RootViewController的YVController。没有办法popToRootViewController
弹出B UINavigationController
的导航堆栈。现在你做什么..使用委托或更改窗口RootViewController 这不是一个好主意。
所以你需要使用展开segue来克服这个问题。示例project来展示使用它的力量..