ios - xcode 8 swift : unwind segue transfer data is not working

标签 ios swift xcode uiviewcontroller unwind-segue

因此,从过去两天开始,我一直在尝试让 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/

相关文章:

ios - 使用相机拍摄的 UIImage 的 PHAssetChangeRequest 失败

iphone - 使用 startMonitoringForRegion :region desiredAccuracy:accuracy? 可以监视的最大区域数是多少

ios - CKReference 的 CloudKit 订阅通知未按预期工作

objective-c - 子浏览器终止

android - 是否可以在运行的应用程序中从服务器下载库?

swift - 检查 Swift 中的密码字符串强度标准

ios - 时间分析器不显示功能

java - 有没有获取iOS设备日志的命令?像使用logcat一样我们可以获取Android设备日志

ios - UIView 约束在 iPad 上不显示相同的结果

快速表格 View 图像和标签