我无法正确地将数据从Collection ViewController传递到ViewController。在vc上显示相同的商品。我不明白我的错误在哪里
struct Goods {
var goods = [String]()
}
var namesOfGoods = [Goods(goods: ["Good1", "Good2", "Good3"]),
Goodsl(goods: ["Good4", "Good5", "Good6"]),
Goods(goods: ["Good7"])]
class ProductsCollectionViewController: UIViewController, UICollectionViewDelegate, UICollectionViewDataSource {
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "show" {
var productDetailVC = segue.destination as! DescriptionProductViewController
let cell = sender as! UICollectionViewCell
let indexPath = collectionView.indexPath(for: cell)
let product = Goods[(indexPath?.row)!]
productDetailVC.name = product
}
}
class DescriptionProductViewController: UIViewController {
var name: Goods!
@IBOutlet weak var productIamge: UIImageView!
@IBOutlet weak var priceLabel: UILabel!
@IBOutlet weak var nameLabel: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
nameLabel.text = name.joined(separator: "")
}
答案 0 :(得分:0)
name
是一个结构而不是数组。
更改此行:
nameLabel.text = name.joined(separator: "")
收件人:
nameLabel.text = name.goods.joined(separator: "")
在这种情况下,name
也是非常糟糕的变量名,您应该考虑将其重命名。