微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

准备segue传递数据零

如何解决准备segue传递数据零

我从字面上都没有更改任何代码,但是在更新到Xcode 12之后,准备Segue方法传递数据的操作不再起作用。

override func prepare(for segue: UIStoryboardSegue,sender: Any?) {
    if segue.identifier == "toDetails" {
        if let indexPath = sender as? IndexPath,let nextVC = segue.destination as? JobDetailViewController {
            nextVC.jobDetails =
                JobDetailViewController.JobDetails(jobDetail: jobs[indexPath.row].text,userName: jobs[indexPath.row].addedByUser!,jobImage: jobs[indexPath.row].jobImage,downloadURL: jobs[indexPath.row].downloadURL!)
        }
    }
}

func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
   performSegue(withIdentifier: "toDetails",sender: indexPath.row)

}

DetailedVC:

var jobDetails: JobDetails?

struct JobDetails {
    var jobDetail: String
    var userName: String
    var jobImage: UIImage?
    var downloadURL: String?
}

(例如) 通过 print(“ Hello(jobDetails?.userName)”),我得到“ Hello nil” 作为输出

新的Swift / Xcode版本是否进行了任何更改? 我也没有收到任何错误/警告

解决方法

请看一下,您传递的是Int的indexPath.row,并准备将其解析为IndexPath。

func tableView(_ tableView: UITableView,didSelectRowAt indexPath: IndexPath) {
       performSegue(withIdentifier: "toDetails",sender: indexPath)
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。