我有两个VC,我正在尝试使用segue将数据从第一个VC传递到第二个VC。第一个VC有一个tableview,每个单元格包含一个标题和一个描述标签,这些标签使用核心数据存储。我想在第二个VC中查看每个单元格的详细信息。我初始化了两个字符串来存储第一个VC中的值,并将它们分配给第二个VC中的字符串。
请看下面的代码:

var SelectedTitle = String()
var SelectedDisc = String()

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    SelectedTitle = self.listAthkar[indexPath.row].title!
    print(SelectedTitle)
    SelectedDisc = self.listAthkar[indexPath.row].details!
    print(SelectedDisc)
    performSegue(withIdentifier: "showCell", sender: self)
}


override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (segue.identifier == "showCell") {
        var destinationVC = segue.destination as! showCellVC
        destinationVC.passedTittle = SelectedTitle
        destinationVC.passedDisc = SelectedDisc
    }
}


class showCellVC: UIViewController {

var passedTittle = String()
var passedDisc = String()
@IBOutlet weak var cellTitle: UILabel!
@IBOutlet weak var cellDisc: UITextView!

override func viewDidLoad() {
    super.viewDidLoad()
    cellTitle.text = passedTittle
    cellDisc.text = passedDisc
    print("Title Passed is \(passedTittle)")
    print("Discription Passed is \(passedDisc)")
}

当我测试应用程序时,控制台会打印:
Title Passed is
Discription Passed is
title
Description

这是一张真实细胞的照片
ios - 无法在VC之间传递数据-LMLPHP
你知道为什么它不能把数据传给第二个VC吗?

最佳答案

看起来你已经在故事板的tableview单元格中放置了一个actionsegue。既然你用的是程序段,你就不想这样了。segue操作在didSelect方法之前触发,因此segue在设置变量之前发生。

关于ios - 无法在VC之间传递数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45917850/

10-15 15:34