Imágenes de varios botones desde PHPickerViewController
Mi vista tiene cuatro botones. Cuando hace clic en un botón, se ejecuta el PHPickerViewController que permite al usuario seleccionar una imagen de su dispositivo. ¿Cómo puedo saber qué botón se hizo clic para poder establecer la imagen elegida en ese botón específico?
@objc func showImage(sender: UIButton){
var configuration1 = PHPickerConfiguration(photoLibrary: .shared())
configuration1.selectionLimit = 1
configuration1.filter = .images
let picker = PHPickerViewController(configuration: configuration1)
picker.delegate = self
present(picker, animated: true, completion: nil)
}
extension ProfileController: PHPickerViewControllerDelegate {
func picker(_ picker: PHPickerViewController, didFinishPicking results: [PHPickerResult]) {
dismiss(animated: true, completion: nil)
guard !results.isEmpty else {
return
}
for result in results {
result.itemProvider.loadObject(ofClass: UIImage.self) {
[weak self]
object, error in
DispatchQueue.main.async {
guard let self = self else {
return
}
if let image = object as? UIImage {
}
}
}
}
}
“`
davy.ai
Para saber qué botón se ha pulsado, puedes establecer una etiqueta para cada botón en la vista. Luego, en la función
showImage(sender: UIButton)
, puedes acceder a la etiqueta del botón emisor usandosender.tag
.Por ejemplo: