提问者:小点点

将数据从一个TableView传输到另一个TableView


我需要通过单击按钮将数据传送到另一个TableView,但我不知道如何实现

您需要将数据传递给另一个TableViewController,并将其保存在一个变量中。

我必须传递一个数据数组

import UIKit

class DivanCell: UITableViewCell {
    
    var favFurniture: Furniture?

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
    @IBOutlet weak var divanNameLabel: UILabel!
    @IBOutlet weak var divanPhoto: UIImageView! 
    @IBOutlet weak var priceLabel: UILabel!
    @IBOutlet weak var sizeDivan: UILabel!
    @IBOutlet weak var favButton: UIButton!
    @IBAction func favTapped(_ sender: Any) {
        favButton.setImage(UIImage(systemName: "heart.fill"), for: UIControl.State.normal)
        favTapped()
    }
    
    func favTapped() {
        favFurniture = (Furniture(name: divanNameLabel.text!, type: "Divan", image: divanPhoto.image!, price: priceLabel.text!))
        FavouriteTableViewCell().favFurniture = favFurniture
    }
    
    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)
        
        // Configure the view for the selected state
    }

}

进入此tableview


class FavouriteTableViewCell: UITableViewCell {
    
    var favFurniture = Furniture?

    override func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

    override func setSelected(_ selected: Bool, animated: Bool) {
        super.setSelected(selected, animated: animated)

        // Configure the view for the selected state
    }

}

共1个答案

匿名用户

这里的示例确实起作用,并且应该让您了解如何做到这一点:

class First {
    var a = "a"
    var b = "b"
    var c = "c"
    
    init() {
        self.getsTapped(second: Second())
    }
    
    func getsTapped(second: Second) { // call this function on your tapped object
        print(second.data) // will show you the empty array
        second.data = [self.a,self.b,self.c]
        print(second.data) // now that array contains values
    }
    
}


public class Second {
    var data: Array<String> = []
}

let first = First()

您创建了一个函数,在您喜欢的任何地方调用该函数。 我是在init()中这样做的,您可能希望在按下按钮时在按钮上调用它。 将第二个类的引用(您希望将值传递给它)传递给它,然后让它发挥神奇的作用。 注意:我在调用函数时确实创建了第二个类的新实例。 这显然对你不起作用。 您需要在外部启动一个实例,以便拥有该类的引用并可以在其他地方访问它。