Swift - 运行 从视图控制器展开之前的 IBAction

Swift - Run IBAction before unwinding from view controller

所以我在视图控制器上有一个 "Save" 按钮,我们将调用 VC2。单击时,它会展开原始视图控制器,我们将调用 VC1.

但是,在将 VC2 的数据传回 VC1 之前,我想 运行 对这些数据进行一些逻辑处理。我尝试从退出 VC2 的保存按钮映射一个 IBActionVC1 上的展开代码 运行。但我注意到它没有 运行 和 IBAction 映射到按钮。我猜这是因为它与退出有关。

所以我的问题是: 如果我有一个退出视图控制器的按钮,我是否也可以将它链接到 IBAction 以便我可以 运行 视图控制器的某些逻辑在它存在之前被退出 (VC2)?

如果您的按钮 link 被编辑到故事板上的 segue,它的 IBAction 似乎不会 运行。我不知道这是否记录在任何地方,但这似乎是行为。

而不是 link 将 按钮 连接到 VC1 的 "Exit",link 您的 VC2到 "Exit",然后给那个 unwind segue 一个标识符,比方说 unwindToVC1.

现在您可以将 IBAction 添加到按钮中,然后写:

@IBAction func buttonPress() {
    // process your data or whatever

    // perform the unwind segue
    performSegue(withIdentifier: "unwindToVC1", sender: yourData)
}