2015-03-13 6 views
32

Ein Problem in einigen Swift-Code, den ich für eine OCR-Übersetzungs-App geschrieben hatte. Das Codefragment ist unten:Einstellung Delegat für UIImagePicker gibt Fehler

@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) 
} 

Die image.delegate = self Linie gibt den Fehler: Kann nicht einen Wert vom Typ Viewcontroller zuweisen uiimagepickerdelegate.

ich die Delegierten in der Klassendefinition festgelegt haben, kann dies unter ...

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

würde geschätzt, alle und jede mögliche Hilfe danke im voraus zu sehen.

Antwort

77

Sie haben UINavigationControllerDelegate in Ihrer ViewController-Klassendebition vergessen.

Das Delegiertenobjekt des Bilderwählers.

Erklärung

unowned(unsafe) var delegate: protocol<UIImagePickerControllerDelegate, UINavigationControllerDelegate>? 
+0

Was für ein dummer Fehler! Haha, ich werde es nicht wieder vergessen. Vielen Dank für Ihre Hilfe! –

+0

Diese Antwort markieren korrigieren und schließen Thema –

+1

DANKE SO VIEL> Ich wusste nicht, ich brauchte UAVIGATIONCONTROLLERDELEGATE – coolcool1994

11

Sie müssen UINavigationControllerDelegate in die Klassendeklaration hinzuzufügen.

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


// Some thing here 

} 
+1

Vielen Dank für ein Beispiel in swift. –

Verwandte Themen