2017-07-12 1 views
0

J'ai un UIImagePickerController fonctionnant correctement avec le mode caméra, mais pas en mode bibliothèque. Lorsque la bibliothèque de photos est présentée, vous pouvez faire défiler et sélectionner Annuler, mais lorsque vous appuyez dessus, les albums ne peuvent pas être sélectionnés. J'essayais de comprendre cela depuis environ une heure, mais ça ne marche pas.UIImagePickerController | La bibliothèque de photos apparaît mais la sélection ne fonctionne pas

XCode 8.3.3 | iOS 10.3.2

Ajout d'une confidentialité appropriée nécessaire, et ci-dessous est mon code de présentation simple.

Une aide précieuse sera grandement appréciée.

// Opens Photo Library 
    func openPhotoLibrary() { 
        if UIImagePickerController.isSourceTypeAvailable(.photoLibrary) { 
            let picker = UIImagePickerController() 
            picker.delegate = self 
            picker.allowsEditing = true 
            picker.sourceType = .photoLibrary 
            present(picker, animated: true, completion: nil) 
        } else { 
            UIAlertController.presentWith(title: "Error".localize(), message: "The photo library can not be accessed at this time.".localize(), on: self) 
        } 
    } 

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
     dismiss(animated: true, completion: nil) 
     let image = info[UIImagePickerControllerOriginalImage] as! UIImage 

     guard currentImage != "left" else { 
      leftImage = image 
      leftImageView.image = image 
      return 
     } 

     guard currentImage != "right" else { 
      rightImage = image 
      rightImageView.image = image 
      return 
     } 

     guard currentImage != "front" else { 
      frontImage = image 
      frontImageView.image = image 
      return 
     } 
    } 

LIEN AVEC LE PROBLÈME: https://www.youtube.com/watch?v=wsKA994Sg88&feature=youtu.be

+0

@dfd La photothèque ouvre, mais la sélection d'un album ne fait rien. Je suis capable de faire défiler et annuler, mais incapable de faire autre chose. –

+0

@dfd La photothèque s'ouvre, nous savons donc que l'instruction if réussit. Le problème est qu'aucun des albums ou des photos sont sélectionnables à l'intérieur de la bibliothèque. –

+0

@dfd 'class PhotoViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {' –

Répondre

0

RESOUDRE!

Le problème résultait d'une extension de UIView que nous utilisons pour fermer le clavier. Beaucoup d'entre vous l'ont déjà vu auparavant.

extension UIView { 
    // Dismisses Keyboard 
    open override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    self.endEditing(true) 
    } 
} 

La solution est simple, il suffit d'ajouter super.touchesBegan(touches, with: event) avant self.endEditing(true) et vous êtes tous ensemble.

0

Il semble que si vous n'étiez pas en train de choisir, vous l'êtes. Le problème est que vous devez rejeter le sélecteur d'image dans le didFinishPickingMediaWithInfo

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) 
    { 
      imagePicker.dismiss(animated: false, completion: nil) 

    }