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