Swift - 将变量从一个单元格传递到另一个单元格?

时间:2018-02-25 18:35:32

标签: swift uitableview

我有两个单元,都是从xib文件加载的。 cell1有一个标签,cell2有一个标签。在cellForRowAt中,当我加载cell2并希望将该变量传递给cell1时,我声明了一个变量。

我尝试过的解决方案

我试图存储本地var' importantVar '在一个名为' importantVarCapture '的全局变量中然后将cell1.cell1Label.text传递给全局变量,但是,由于cell1已经加载,因此失败。

所以简而言之,我希望以某种方式在我的cell2完成加载之后更新cell1并且“重要的变量”#39;已经宣布。

我创建了一个新的xCode项目来复制我的问题,代码如下:

class TableViewController: UITableViewController {

    var importantVarCapture: String?

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.register(UINib(nibName: "Cell1", bundle: nil), forCellReuseIdentifier: "Cell1")
        tableView.register(UINib(nibName: "Cell2", bundle: nil), forCellReuseIdentifier: "Cell2")
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 2
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.row == 0 {
            let cell1 = tableView.dequeueReusableCell(withIdentifier: "Cell1") as? Cell1
            cell1?.cell1Label.text = self.importantVarCapture
            return cell1!
        } else {
            let importantVar = "Hello World"
            self.importantVarCapture = importantVar
            let cell2 = tableView.dequeueReusableCell(withIdentifier: "Cell2") as? Cell2
            cell2?.cell2Label.text = importantVar
            return cell2!
        }
    }
}

以下是我的xib文件:

class Cell1: UITableViewCell {

    @IBOutlet weak var cell1Label: UILabel!

}


class Cell2: UITableViewCell {

    @IBOutlet weak var cell2Label: UILabel!

}

P.S - 我最近试图提出这个问题,并试图删除这个问题,但一直无法解决。我之前的问题没有代码,而且太乱了。我创建了这个新的XCode项目来复制我的问题。请接受我对复制品的道歉,我感谢您的帮助。

0 个答案:

没有答案