我花了很多时间..但我不知道为什么它不工作..单元格的索引路径调用和设置值正确,但单元格类我发现零值..如果你需要任何信息,然后让我知道。
在我收藏中查看索引路径
在集合视图单元格中
下面是我代码:
对于集合视图:
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: menuBarItemDetailId, for: indexPath) as! MenuBarItemDetail
cell.shopCategory = "600"
print(cell.shopCategory)
return cell
}
对于单元格:
class MenuBarItemDetail: UICollectionViewCell , UITableViewDataSource , UITableViewDelegate {
var shopCategory : String?
override init(frame: CGRect) {
super.init(frame: frame)
print("shopCategory :-> ...i am calling from cell :\(shopCategory)")
}
2条答案
按热度按时间mgdq6dx11#
因为您先调用了
awakeFromNib
方法,然后调用了cellForRow
。您正在为cellForRow
中的变量赋值,因此当第一个项目执行时,它的值为nil
。解决方案
1.自定义单元类中变量
1.在自定义单元格类中创建方法
1.在
cellForItem
中,像这样调用函数输出量
eagi6jfj2#
当你在写作时
当时“覆盖init(帧:CGRect)”,并且在init时没有为shopCategory赋值,这就是您得到nil的原因。
在MenuBarItemDetail中添加一个函数“getShopCategory”,当您想访问shopCategory的值时,可以使用getShopCategory函数获取该值。
控制器类别
单元格是MenuBarItemDetail的当前示例,因此它将返回分配的shopCategory值
请让我知道它是否适合你。谢谢