“Unwind Segue”可以在通过故事板参考连接的两个故事板之间工作吗?

Posted

技术标签:

【中文标题】“Unwind Segue”可以在通过故事板参考连接的两个故事板之间工作吗?【英文标题】:Can an 'Unwind Segue' work between two storyboards connected by a storyboard reference? 【发布时间】:2015-10-27 13:22:39 【问题描述】:

ios 9 中,故事板可以通过“故事板引用”连接到第二个故事板,方法是添加故事板引用并将“引用 ID”设置为另一个故事板文件的名称。

是否可以在第二个文件中设置展开转场以展开到第一个文件中的场景?如果是这样,涉及哪些步骤,无论是在 Interface Builder 中还是在代码中?

【问题讨论】:

【参考方案1】:

我不必按照 Ryan 的说明从第二个故事板回到第一个故事板。对我来说,在我的第二个故事板中,我可以按住 Control 键从视图控制器拖动到它自己的出口,然后我在 first 故事板中使用的视图控制器类中指定的展开转场出现了。所以我只是选择了它来创建一个带有标识符的新出口转场,并在代码中调用 performSegueWithIdentifier: 。工作正常。

【讨论】:

它对我不起作用。当我以编程方式调用 performSegueWithIdentifier 时,什么也没有发生。你知道会发生什么吗? 是否与我们如何启动导航到第二个故事板中的第一个屏幕有关?即:开关还是模态? 右键from VC自带的Exit,选择之前定义的unwind方法,从VC拖到。【参考方案2】:

从您的故事板参考开始,创建一个新的故事板参考,该参考将作为您的“主要”故事板的参考。确保您也将 Storyboard Identifier 设置在 main 上。

您现在将拥有一个“主场景”参考,其中包含所有可用的退出。您现在可以像往常一样创建展开转场。按住 Ctrl 键从您的控制器拖动到主场景上的 Exit 标记,您将能够选择所需的出口。

【讨论】:

【参考方案3】:

1) 将此方法添加到您的 MainViewController

// NEEDED! Do not delete!
@IBAction func unwindToMasterViewController(_ segue : UIStoryboardSegue) 
  // Do nothing
2) 在主故事板中,右键单击引用故事板的 Exit segue 并选择 unwindToMasterViewController

3) 给出口转场起个名字以便在代码中引用它

4) 从代码中调用退出序列

【讨论】:

以上是关于“Unwind Segue”可以在通过故事板参考连接的两个故事板之间工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

在容器视图中导航时,Unwind Segue 不起作用

如何以编程方式执行Unwind segue?

无法通过情节提要创建 Unwind Segue Xcode 11

iOS 8 unwind segue 导致方向错误

unwind segue vs. popViewController 动画

通过 unwind segue 传递数据