【问题标题】:Why do we use unwind segue if we can use segues to go back to any view controller? [closed]如果我们可以使用 segue 返回任何视图控制器,为什么还要使用 unwind segue? [关闭]
【发布时间】:2016-04-05 08:04:17
【问题描述】:

我想知道为什么我们使用展开 segue 并制作两段代码,一段在源视图控制器中,另一段在目标视图控制器中,并且可以从 - 例如 - 视图控制器#3 中的按钮 ctrl-drag 到显示视图控制器#1

【问题讨论】:

    标签: ios swift uiviewcontroller xcode7 unwind-segue


    【解决方案1】:

    展开转场让您可以通过推送、模式、弹出框和其他类型的转场“展开”导航堆栈。您可以使用展开转场“返回”导航层次结构中的一个或多个步骤。与创建目标视图控制器的新实例并转换到它的普通 segue 不同,展开 segue 转换到导航层次结构中的现有视图控制器。在过渡开始之前,会向源视图控制器和目标视图控制器提供回调。您可以使用这些回调在视图控制器之间传递数据。

    当您在 Interface Builder 中创建展开转场时,您无需指定目标视图控制器。 unwind segue 确定在运行时触发时要展开到导航层次结构中的哪个视图控制器。这个过程是可定制的,并且为容器视图控制器提供了额外的定制点来参与展开过程。

    检查:https://developer.apple.com/library/ios/technotes/tn2298/_index.html

     -(IBAction)unwindForSegue:(UIStoryboardSegue *)unwindSegue towardsViewController:(UIViewController *)subsequentVC{
    
    
       }
    

    【讨论】:

      【解决方案2】:

      简而言之,您不能使用正常的 segue 来表示“返回”。触发触发的 segue 实例化目标视图控制器;它创建一个新的视图控制器实例。但是当关闭一个呈现的视图控制器或弹出一个推送的视图控制器时,我们不需要任何新的视图控制器实例。我们想以某种方式返回视图控制器的现有实例。

      来源:iOS9 编程 - Matt Neuberg(第 6 版)第 385 页

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-09-29
        • 1970-01-01
        • 2015-02-13
        • 2015-06-14
        • 2020-02-17
        • 1970-01-01
        • 1970-01-01
        • 2014-07-17
        相关资源
        最近更新 更多