我有一个连接到多个视图控制器的地图视图。
我需要从另一个按钮(而不仅仅是后退按钮)实现"展开",所以我使用了:
self.navigationController?.popViewControllerAnimated(true)
我的问题是:如上所述,我是否应该费心尝试在代码中使用父视图控制器中的prepareForUnwind
和canPerformUnwindSegueAction
实现展开 + 从视图控制器按住 ctrl 键拖动以退出故事板?如果是这样,为什么?
如果您只是dimissing
呈现的UIViewController
或从导航堆栈中弹出UIViewController
,则无需使用展开 segue,尽管它对您执行相同的操作。
但是想一想有 A、B、C UINavigationControllers
然后是 RootViewController
R
然后想一个条件
(Present) R -> A
(Push) AR -> XVController
(Push)XVController -> B
(Present)BR-> YVContoller
...and so on..
现在,如果您想返回到YVController到您刚刚启动的项目RootViewController。没有办法,因为popToRootViewController
弹出到B UINavigationController
的导航堆栈。现在你做什么..要么使用委托,要么更改窗口 RootViewController,这不是一个好主意。
所以你需要使用展开segue来克服这个问题。一个示例项目,用于演示使用它的强大功能。