Setting delegate for UIImagePicker returns error

人盡茶涼 提交于 2019-11-29 10:37:04

问题


Having a problem in some swift code I had written for an OCR translation app. The code snippet is below:

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

The image.delegate = self line returns the error: Cannot assign a value of type viewcontroller to uiimagepickerdelegate.

I have set the delegate in the class definition, this can be seen below...

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

All and any help would be appreciated, thanks in advance.


回答1:


You forgot about UINavigationControllerDelegate in your ViewController class defenition.

The image picker’s delegate object.

Declaration

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



回答2:


You must add UINavigationControllerDelegate to the class declaration.

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


 // Some thing here

}


来源:https://stackoverflow.com/questions/29034987/setting-delegate-for-uiimagepicker-returns-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!