我需要通过单击按钮将数据传送到另一个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
}
}
这里的示例确实起作用,并且应该让您了解如何做到这一点:
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()中这样做的,您可能希望在按下按钮时在按钮上调用它。 将第二个类的引用(您希望将值传递给它)传递给它,然后让它发挥神奇的作用。 注意:我在调用函数时确实创建了第二个类的新实例。 这显然对你不起作用。 您需要在外部启动一个实例,以便拥有该类的引用并可以在其他地方访问它。