我为两个不同的班级做了两个代表。一个是UITableViewCell
类,CameraTapDelegate
。
protocol CameraTapDelegate {
func showCameraOptions()
}
当用户点击单元格中的UIImageView
时,会打开相机或图库。当用户选择图像func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
时执行。为了将此图像提供给单元格我已经制作了另一个协议,但这一次是ViewController
类:
protocol UserImageDelegate {
func selectedImage(image: UIImage)
}
我在didFinishPickingMediaWithInfo
课程中ViewController
拨打了该电话,将所选图片传递给UITableViewCell
。所以我的问题是,在UITableViewCell
课程中我添加了selectedImage
方法,但它没有被执行。
答案 0 :(得分:1)
您必须记住为UserImageDelegate
类型的委托指定一个值。
UserImageDelegate
由UITableViewCell
实施。知道选择了图像的对象是ViewController
。因此ViewController
应该定义属性:
weak var userImageDelegate: UserImageDelegate?
在didFinishPickingMediaWithInfo
我希望看到:
userImageDelegate?.selectedImage(image: image)
现在唯一剩下的就是确保userImageDelegate
引用实现它的cell
,所以我想cellForRow
我希望看到一些东西喜欢:
self.userImageDelegate = cell