2015-03-13 63 views
32

在我爲OCR翻譯應用程序編寫的一些swift代碼中遇到問題。 的代碼片段是以下:設置UIImagePicker的代理返回錯誤

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

的image.delegate =自線返回錯誤:不能指定類型的ViewController的值以uiimagepickerdelegate。

我已在類定義的代表,這可以在下面看到...

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

所有和任何幫助將提前讚賞,感謝。

回答

77

你在你的ViewController類defenition中忘記了UINavigationControllerDelegate。

圖像選擇器的委託對象。

宣言

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

多麼愚蠢的錯誤!哈哈我不會再忘記。非常感謝您的幫助! – 2015-03-13 15:01:04

+0

標記該答案正確和關閉主題 – 2015-03-13 15:03:19

+1

非常感謝您>我知道我不需要UINAVIGATIONCONTROLLERDELEGATE – coolcool1994 2016-07-29 20:06:45

11

您必須添加UINavigationControllerDelegate到類聲明。

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


// Some thing here 

} 
+1

感謝您在swift中提供示例。 – 2016-03-11 13:48:59