在将数据传递到另一个视图时添加到数组的问题

时间:2017-10-16 06:57:28

标签: ios arrays swift uiviewcontroller

我有一个像这样的结构..

    struct Product {
        let name : String
        let id : String

    }
 }

我还有一个名为arrayOfURLImages的单独图像数组现在我有一个collectionviewcollectionview的每个单元都有arrayOfURLImages和2的图像显示idrate的标签。当我点击collectionview的某个项目时,我会加载一个tableviewcell,其中包含collectionview的{​​{1}}图像以及idname

点击收藏查看时,这就是我传递imagename& id ...

func SellBtnTapped(_ sender: UIButton) {

 let indexPath = collectionView?.indexPath(for: ((sender.superview?.superview) as! RecipeCollectionViewCell))

 self.photoThumbnail = self.arrayOfURLImages[(indexPath?.row)!]

 let myVC = storyboard?.instantiateViewController(withIdentifier: “mydentifier") as! myViewController
 myVC.myImage = self.photoThumbnail

let productObject = productData1[(indexPath?.row)!]

 myVC.prodName = productObject.name <— ‘name’ from struct 
 myVC.prodId = productObject.id <— ‘id’ from struct 

 navigationController?.pushViewController(myVC, animated: true)
 }

现在我的问题是我想将tableviewcells添加到数组中。同样在加载tableviewcell的viewcontroller中,这就是我在cellForRowAt中分配数据的方式......

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell: sellTableViewCell = tableView.dequeueReusableCell(withIdentifier: "sellProductIdentifier") as! sellTableViewCell

cell.IdLabel.text = prodId
cell.nameLabel.text = prodName

  return cell
}

目前,在numberOfRowsInSection中,我只是给出了返回1,因此只显示了一个单元格,但我想将我的单元格添加到数组中并获取noOfItems作为计数阵列...

希望有人能帮忙...... :)

修改

我真正想要实现的是,当我点击一个集合视图项时,会显示一个tableviewcell,当我返回并单击第二个集合视图项时,应显示2个tableviewcells,每个都包含来自分别是第一和第二个收集视图单元。

1 个答案:

答案 0 :(得分:0)

好像你想将productData1传递给下一个ViewController

只需在myViewController

中创建实例成员即可
var arrProduct: [Product]?

然后传递它:

myVC.arrProduct = productData1

并在arrProduct.count中返回数组numberOfRowsInSection的计数。

并在cellForRowAtIndexPath

中使用它
let product = arrProduct[indexPath.row]
cell.IdLabel.text = product.id
cell.nameLabel.text = product.name

修改

    var selectedItems: [Product]?
    func SellBtnTapped(_ sender: UIButton) {

     let indexPath = collectionView?.indexPath(for: ((sender.superview?.superview) as! RecipeCollectionViewCell))

     self.photoThumbnail = self.arrayOfURLImages[(indexPath?.row)!]

     let myVC = storyboard?.instantiateViewController(withIdentifier: “mydentifier") as! myViewController
     myVC.myImage = self.photoThumbnail

    let productObject = productData1[(indexPath?.row)!]
    if selectedItems == nil {
       selectedItems = [Product(name:productObject.name, id:productObject.id)]
    }else {
        selectedItems.append(productObject)
    }
     myVC.arrProduct = selectedItems

     navigationController?.pushViewController(myVC, animated: true)
     }

注意:类名应以大写字母和带小写字母的实例成员开头,名称也应该是描述性的。