如何解决UICollectionViewCell和UICollectionView swift文件之间的通信
我有两个文件。第一个是包含UICollectionView的UIViewController。第二个是UICollectionViewCell,它类似于单元格笔尖的ViewController。它可以管理单元格内的所有操作,例如,如果用户单击单元格内的“赞”按钮。
当用户单击“喜欢”按钮时,我将打印包含“喜欢”按钮的单元格的IndexPath。所有单元格都包含一个“赞”按钮,但是我想知道用户单击“赞”按钮所在的单元格的IndexPath。
我的问题是如何将该IndexPath传达给UIViewController?我想这样做是因为我的UIViewController将整个数据存储在一个数组中,并且我想使用IndexPath访问该数据的特定部分。另一种可能性是将这些数据存储在UICollectionViewCell文件中,但这不是一个好方法。
解决方法
我真的很难找到解决方案,您帮了我很多忙。非常感谢你们!回调关闭是解决此问题的正确方法。这是我的解决方案:
//UICollectionViewCell
var saveProductLike: ((_ index: Int) -> Void)?
@IBAction func likedButtonClicked(_ sender: UIButton) {
print("Liked button clicked!")
let productArrayIndex = calculateProductArrayIndex(for: sender)
saveProductLike?(productArrayIndex!)
}
//UIViewController
cell.saveProductLike = { (index) -> Void in
print(index)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。