web-dev-qa-db-ja.com

UIImagePickerのデリゲートを設定するとエラーが返されます

一部のSwift OCR翻訳アプリ用に記述したコードに問題があります。コードスニペットは以下のとおりです。

@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 = self行は、エラーを返します。viewcontroller型の値をuiimagepickerdelegateに割り当てることができません。

私はクラス定義でデリゲートを設定しました、これは以下に見ることができます...

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

事前に感謝します。

37
Jacob King

ViewControllerクラスの定義でUINavigationControllerDelegateを忘れていました。

画像ピッカーのデリゲートオブジェクト。

宣言

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

UINavigationControllerDelegateをクラス宣言に追加する必要があります。

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


 // Some thing here

}
17
romdav