将数据从集合视图传递到视图控制器

时间:2019-10-01 11:34:30

标签: swift

我无法正确地将数据从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: "")

    }

1 个答案:

答案 0 :(得分:0)

name是一个结构而不是数组。 更改此行:

nameLabel.text = name.joined(separator: "")

收件人:

nameLabel.text = name.goods.joined(separator: "")

在这种情况下,name也是非常糟糕的变量名,您应该考虑将其重命名。

相关问题