将“ Unwind Segue”与情节提要参考一起使用时,“没有标识符的segue”

时间:2019-02-18 20:21:35

标签: ios swift interface-builder segue

我已经按照说明herehere进行操作,这些说明建议即使使用情节提要参考,我也应该能够创建展开/编辑序列。

流程非常简单:

PhotoDetailScene 具有对 EditHistoryScene 的情节提要,以及点击手势以触发segue,然后我在 EditHistoryScene 上关闭了一个关闭按钮返回到 PhotoDetailScene 。现在效果很好(自定义的“显示”序列打开了EditHistoryScene),如果我使用dismiss()调用,则效果很好。但是使用segue标识符进行放开总是会失败:

EditHistoryScene has no segue with identifier 'UnwindEditHistorySegue'

在我的EditHistoryScene关闭按钮操作中,我有:

func closeButtonPressed(_ sender: Any) 
    performSegue(withIdentifier: "UnwindEditHistorySegue", sender: self)
}

在我的PhotoDetailScene中,我添加了:

@IBAction func unwindToPhotoDetailScene(_ unwindSegue: UIStoryboardSegue) {
    print("It works!")
}

这是我在IB中进行设置的方法,其中将unwindToPhotoDetailScene()方法连接到情节提要 reference (因为这是IB让我ctrl +链接出口的唯一方法):

呈现segue: enter image description here

解开segue属性(和segue名称) enter image description here

已为目标情节提要正确设置了故事板参考: enter image description here

故事板参考的退出点已连接回PhotoDetailScene: enter image description here

EditHistoryScene故事板实例似乎未连接到@IBOutlet? enter image description here

我最好的猜测是它失败了,因为这是一个情节提要参考,并且展开序号是在 reference 而不是实际的情节提要实例上定义的。但是我不知道如何将EditHistoryScene的出口直接附加到PhotoDetailScene。

1 个答案:

答案 0 :(得分:2)

您不需要为参考本身创建任何序列。

一旦第二个情节提要中包含对第一个情节提要的引用,则在第一个情节提要中定义的所有展开功能均可用。

您可以通过将退出触发器从视图触发器场景中的退出图标拖动到视图控制器场景中来创建退出序列。

如果您想从“关闭”按钮触发展开,只需将ctrl从关闭按钮拖动到其视图控制器顶部的“退出”图标,您将看到unwindToPhotoDetailScene作为选项。

如果要以编程方式触发,则只需要给segue一个标识符即可。

例如,您可能需要关闭按钮上的操作处理程序功能来检查是否有未保存的更改。如果有,请提示用户确认他们将丢失所做的更改(或保存或进行任何更改)。他们乐于继续后,您可以调用展开。

要进行设置,请将ctrl从视图控制器对象拖动到其自己的退出图标。创建展开序列并为其指定一个标识符。