代码之家  ›  专栏  ›  技术社区  ›  Chaudhry Talha

使用委托方法设置UIImage

  •  0
  • Chaudhry Talha  · 技术社区  · 6 年前

    我已经为两个不同的班级委派了两名代表。一个是一个 UITableViewCell 类别为 CameraTapDelegate .

    protocol CameraTapDelegate {
        func showCameraOptions()
    }
    

    当用户点击 UIImageView 在单元格中。当用户选择图像时 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 已执行。为了把这张照片还给cell,我制定了另一个协议,但这次 ViewController 类别:

    protocol UserImageDelegate {
        func selectedImage(image: UIImage)
    }
    

    我打过电话 didFinishPickingMediaWithInfo 在里面 视图控制器 类将所选图像传递给 UITableViewCell . 所以我的问题是 UITableViewCell 我添加的类 selectedImage 方法,但未执行该方法。

    1 回复  |  直到 6 年前
        1
  •  1
  •   Milan Nosáľ    6 年前

    您必须记住为 UserImageDelegate 类型

    UserImageDelegate 由实施 UITableViewCell . 知道已选择图像的对象是 ViewController . 因此 视图控制器 应定义属性:

    weak var userImageDelegate: UserImageDelegate?
    

    在里面 didFinishPickingMediaWithInfo 我希望看到:

    userImageDelegate?.selectedImage(image: image)
    

    现在唯一剩下的就是确保 userImageDelegate 参考 cell 这实现了它,所以我想 cellForRow 我希望看到类似的情况:

    self.userImageDelegate = cell