Swift 4 Image Picker не меняет UIImageView - PullRequest
0 голосов
/ 09 ноября 2018

По некоторым причинам в моем новом проекте этот код не работает, который работал для меня раньше. Текущий код не изменяет пользовательский интерфейс profileImage.

Делегаты

UIImagePickerControllerDelegate, UINavigationControllerDelegate, UIGestureRecognizerDelegate

Код:

@IBOutlet weak var profileImage: UIImageView!

@IBAction func changeProfilePicture(_ sender: Any) {
        print("Profile picture tapped")

        let pickerController = UIImagePickerController()
        pickerController.delegate = self
        pickerController.allowsEditing = true

        let alertController = UIAlertController(title: "Add Picture", message: "", preferredStyle: .actionSheet)

        let photoLibraryAction = UIAlertAction(title: "Photo Library", style: .default) { (action) in
            pickerController.sourceType = .photoLibrary
            self.present(pickerController, animated: true, completion: nil)
        }


        let cancelAction = UIAlertAction(title: "Cancel", style: .destructive, handler: nil)
        alertController.addAction(photoLibraryAction)
        alertController.addAction(cancelAction)
        present(alertController, animated: true, completion: nil)
    }

   @objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage, editingInfo: [String : Any]?) {

        self.profileImage.image = image
        self.dismiss(animated: true, completion: nil)

    }

Консольный вывод

ошибок при обнаружении расширений: Ошибка Domain = PlugInKit Code = 13 "запрос отменен" UserInfo = {NSLocalizedDescription = запрос отменен}

Я пытался

   @objc func

    internal func

    @objc internal func

self.profileImage.image = image не устанавливает интерфейс и не меняет изображение

1 Ответ

0 голосов
/ 09 ноября 2018

Правильный метод делегата

func imagePickerController(_ picker: UIImagePickerController, 
  didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {

   if let image = info[.originalImage] as? UIImage {
      self.profileImage.image = image
   }
   else
     if let image = info[.editedImage] as? UIImage {
      self.profileImage.image = image
    }
     self.dismiss(animated: true, completion: nil)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...