【发布时间】:2018-01-03 18:09:22
【问题描述】:
我为两个不同的班级指定了两个代表。一个是UITableViewCell 类,即CameraTapDelegate。
protocol CameraTapDelegate {
func showCameraOptions()
}
当用户在单元格中点击UIImageView 时会打开相机或图库。当用户选择图像func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 时执行。为了将此图像返回单元格,我制定了另一个协议,但这次是在 ViewController 类:
protocol UserImageDelegate {
func selectedImage(image: UIImage)
}
我在ViewController 类中调用了didFinishPickingMediaWithInfo 以将所选图像传递给UITableViewCell。所以我的问题是,在UITableViewCell 类中我添加了selectedImage 方法,但它没有被执行。
【问题讨论】:
-
我不清楚您的期望与实际发生的情况。您能否展示一个对象实现
UserImageDelegate协议的代码以及您如何使用该对象? -
确保您还分配了代表,并说明您如何称呼它
UserImageDelegate.. -
@MilanNosáľ 我应该在
tableViewCell类中分配UserImageDelegate什么? -
@PhillipMills 更新了我的问题,希望它现在可以更清楚地了解问题。
-
UserImageDelegate由UITableViewCell实现。知道选择了图像的对象是ViewController。因此ViewController应该有某个属性weak var userImageDelegate: UserImageDelegate?。在didFinishPickingMediaWithInfo我希望看到:delegate?.selectedImage(image: image)。现在唯一剩下的就是确保delegate引用单元格,所以我猜在cellForRow中我希望看到类似:self.userImageDelegate = cell
标签: ios uitableview delegates uiimage