我想点击一个类别后显示产品列表。我将类别id(rowid)发送到ProductListController,我可以访问rowid。
我想将rowid发送到我的ProductListCell类,并将rowid传递给setupViews()中的fetchProduct(rowid:Int)。
到目前为止,我已经尝试过notificationCenter和协议类,我可以找到我正在寻找的结果。
ProductCellList.swift
class ProductListCell : BaseCell ,UICollectionViewDataSource, UICollectionViewDelegate,UICollectionViewDelegateFlowLayout
{
let cellId = "cellId"
var products = [Product]()
weak var delegate: ProductCellDelegate?
override func setupViews() {
super.setupViews()
var receivedRowId = getRowId() // here is the problem - i can't get the rowid from productlistcontroller
fetchProduct(rowId: receivedRowId)
addSubview(collectionView)
addConstraintsWithFormat(format: "H:|[v0]|", views: collectionView)
addConstraintsWithFormat(format: "V:|[v0]|", views: collectionView)
collectionView.register(ProductCell.self, forCellWithReuseIdentifier: cellId)
}
func fetchProducts(rowId: Int){
ApiServiceProduct.sharedInstance.fetchProductsList(rowId: rowId) { (products:[Product]) in
self.products = products
self.collectionView.reloadData()
}
}
答案 0 :(得分:0)
我不太关注你的问题,但是UICollectionView
通过UICollectionViewDelegate
有func collectionView(UICollectionView, didSelectItemAt: IndexPath)
,这可能是执行此任务的理想场所,特别是如果rowid和类别是相同。