web-dev-qa-db-fra.com

La définition du délégué pour UIImagePicker renvoie une erreur

Avoir un problème avec du code Swift que j'avais écrit pour une application de traduction OCR. L'extrait de code est ci-dessous:

@IBAction func btnOCR(sender: AnyObject) {

    var languageAlert = UIAlertController(title: "For Your Information...", message: "The OCR feature currently only supports English & French.", preferredStyle: .Alert)
    languageAlert.addAction(UIAlertAction(title: "Okay", style: .Default, handler: { action in

        var image = UIImagePickerController()
        image.sourceType = UIImagePickerControllerSourceType.Camera
        image.allowsEditing = false
        image.delegate = self
        presentViewController(image, animated: true, completion: nil)

    }))
    self.presentViewController(languageAlert, animated: true, completion: nil)
}

La ligne image.delegate = self renvoie l'erreur: Impossible d'attribuer une valeur de type viewcontroller à uiimagepickerdelegate.

J'ai mis le délégué dans la définition de classe, cela peut être vu ci-dessous ...

class ViewController: UIViewController, UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource, UIImagePickerControllerDelegate {    }

Toute aide serait appréciée, merci d'avance.

37
Jacob King

Vous avez oublié UINavigationControllerDelegate dans votre définition de classe ViewController.

Objet délégué du sélecteur d'images.

Déclaration

unowned(unsafe) var delegate: protocol<UIImagePickerControllerDelegate, UINavigationControllerDelegate>?
81
Pavel Gatilov

Vous devez ajouter UINavigationControllerDelegate à la déclaration de classe.

class ViewController: UIViewController, UITextFieldDelegate, UIPickerViewDelegate, UIPickerViewDataSource, UIImagePickerControllerDelegate, UINavigationControllerDelegate {    


 // Some thing here

}
17
romdav