【发布时间】:2016-04-05 08:04:17
【问题描述】:
我想知道为什么我们使用展开 segue 并制作两段代码,一段在源视图控制器中,另一段在目标视图控制器中,并且可以从 - 例如 - 视图控制器#3 中的按钮 ctrl-drag 到显示视图控制器#1
【问题讨论】:
标签: ios swift uiviewcontroller xcode7 unwind-segue
我想知道为什么我们使用展开 segue 并制作两段代码,一段在源视图控制器中,另一段在目标视图控制器中,并且可以从 - 例如 - 视图控制器#3 中的按钮 ctrl-drag 到显示视图控制器#1
【问题讨论】:
标签: ios swift uiviewcontroller xcode7 unwind-segue
展开转场让您可以通过推送、模式、弹出框和其他类型的转场“展开”导航堆栈。您可以使用展开转场“返回”导航层次结构中的一个或多个步骤。与创建目标视图控制器的新实例并转换到它的普通 segue 不同,展开 segue 转换到导航层次结构中的现有视图控制器。在过渡开始之前,会向源视图控制器和目标视图控制器提供回调。您可以使用这些回调在视图控制器之间传递数据。
当您在 Interface Builder 中创建展开转场时,您无需指定目标视图控制器。 unwind segue 确定在运行时触发时要展开到导航层次结构中的哪个视图控制器。这个过程是可定制的,并且为容器视图控制器提供了额外的定制点来参与展开过程。
检查:https://developer.apple.com/library/ios/technotes/tn2298/_index.html
-(IBAction)unwindForSegue:(UIStoryboardSegue *)unwindSegue towardsViewController:(UIViewController *)subsequentVC{
}
【讨论】:
简而言之,您不能使用正常的 segue 来表示“返回”。触发触发的 segue 实例化目标视图控制器;它创建一个新的视图控制器实例。但是当关闭一个呈现的视图控制器或弹出一个推送的视图控制器时,我们不需要任何新的视图控制器实例。我们想以某种方式返回视图控制器的现有实例。
来源:iOS9 编程 - Matt Neuberg(第 6 版)第 385 页
【讨论】: