Как определить, какой UIImagePickerController, вызывающий func didCancel, если у меня два представления изображений в одном представлении? - PullRequest
0 голосов
/ 15 мая 2019

У меня есть два UIImageView s (leftImageView & rightImageView) на одном экране.Я пытаюсь узнать, какой UIImagePickerController вызывает imagePickerControllerDidCancel.Это leftImageView или правильный?

Вот переключатель для кнопок выбора, чтобы выбрать левое или правое изображение.

switch sender.tag {
    // left image
case 0:
    self.imageView = leftImage
default:
    self.imageView = rightImage
}

Функция ниже может узнать, какой вид изображения вызывает его.Но функция didCancel не делает:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if let image = info[.originalImage] as? UIImage {
        self.imageView.image = image
    }
    picker.dismiss(animated: true, completion: nil)
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) { 
    // the rightImageView or the leftImageView calling the cancel?

    if (rightImageView){
        // print("the right image ")
    }

    picker.dismiss(animated: true, completion: nil)
}

Ответы [ 2 ]

1 голос
/ 15 мая 2019

У вас уже есть информация, которая вам нужна.Чек self.imageView:

if self.imageView === leftImageView {
    // it's the left image view
} else {
    // it's the right image view
}
1 голос
/ 15 мая 2019

При предъявлении присваиваете tag

let picker = UIImagePickerController() // make it an instance var


picker.view.tag = 20
self.present(......

и проверяете его в отмене

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
  if picker.view.tag == 20 {
    // left
  }
  else {
   // right
  }
}
...