因此,从过去两天开始,我一直在尝试让 unwind segue 正常工作。我尝试观看并遵循几个不同的教程,但没有一个成功。我创建了 @IBAction override func unwind(for unwindSegue: UIStoryboardSegue, towardsViewController subsequentVC: UIViewController)
但这从不执行任何代码。我放了一个简单的打印件并让它打印文本,但它从未打印过文本。我在第一个 View Controller 中创建了它,然后在第二个 View Controller 中我有一个按钮,我连接到 View Controller 顶部的 Exit 并选择了 unwind Action ,它永远不会展开。我做错了什么或错过了什么?
到目前为止,我有 2 个 View :RaceViewController 和 SingleStatViewController
我将从选择 RaceViewController 中的指定行开始,它们将以模态方式打开 SingleStatViewController。我在 SingleStatViewController 中有一个名为 dismissBtn 的按钮。当我单击按钮时,它会关闭 SingleStatViewContoller。我只需要它将一些数据传递回 RaceViewController。
因此,如果用户选择表格中 3 个单元格中的 1 个(行是半兽人、半 Sprite 和人类),它将打开 SingleStatViewController 并要求选择 1 个统计数据(这些将是 6 个按钮(Str、Dex) , Con, Int, Wis, Chr) 当他们选择其中一个按钮时,它将返回数据并更新 detailTextLabel。
我选择人类然后我选择 Str。当它返回到 RaceViewController 并将 detailTextLabel 中的文本更新为 +2 Str。
现在,这是我用来关闭的代码。我可以使用它来继续还是我真的需要执行放松:
@IBAction func dismissbtn(_ sender: Any)
{
dismiss(animated: true, completion: nil)
}
最佳答案
您需要按如下方式执行展开和发送数据:
@IBAction func unwindToRaceViewController(sender: UIStoryboardSegue)
{
if let sourceViewController = sender.sourceViewController
as? RaceViewController {
stat = sourceViewController.stat
}
unwind segues as alternative to delegate可以引用这篇文章
您还可以使用委托(delegate)将数据传回之前的 Controller 。
关于ios - xcode 8 swift : unwind segue transfer data is not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41328921/