简体   繁体   English

XCODE 9中的UIImagePickerController错误

[英]Error with UIImagePickerController in XCODE 9

when I execute mi code it show an error: 当我执行mi代码时,显示错误:

errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo={NSLocalizedDescription=query cancelled} 发现扩展名时遇到的错误:错误Domain = PlugInKit代码= 13“查询已取消” UserInfo = {NSLocalizedDescription =查询已取消}

This happens when I select a photo from the library or when I cancel from the library, the problem is that the photo appears but it is not assigned to the variable. 当我从图库中选择照片或从图库中取消照片时,会发生这种情况,问题是出现了照片但未将其分配给变量。

My Code: 我的代码:

class DetalleShopViewController: UIViewController, UITextFieldDelegate, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet weak var imageDetalle: UIImageView!
@IBOutlet weak var textFieldDetalle: UITextField!
@IBOutlet weak var saveBtn: UIBarButtonItem!

var shops: [NSManagedObject] = []

override func viewDidLoad() {
    super.viewDidLoad()
    textFieldDetalle.delegate = self
    // Do any additional setup after loading the view.
}



override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if (sender as AnyObject? !== saveBtn) {return}
    print("VOY A MANDARLA")
    self.save(name: textFieldDetalle.text!, image: imageDetalle.image!)
    print("MANDADA")
}


@IBAction func cancelar(_ sender: UIBarButtonItem) {
    dismiss(animated: true, completion: nil)
}

@IBAction func seleccionImagen(_ sender: UITapGestureRecognizer) {
    textFieldDetalle.resignFirstResponder()
    let imagePickerCtrl = UIImagePickerController()
    imagePickerCtrl.delegate = self
    imagePickerCtrl.sourceType = .photoLibrary
    imagePickerCtrl.allowsEditing = false

    self.present(imagePickerCtrl, animated: true, completion: nil)
}


// MARK: UITextFieldDelegate

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    self.dismiss(animated: true, completion: nil)
}

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    let selectedImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    imageDetalle.image = selectedImage
    self.dismiss(animated: true, completion: nil)
}

Maybe trying to dismiss self (aka current VC) is cancelling the picker actions? 也许试图解散自我(又名当前的VC)正在取消选择器操作?

Try doing 尝试做

picker.dismiss(animated: true, completion: nil)

Instead of 代替

self.dismiss(animated: true, completion: nil)

try 尝试

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {
                imageDetalle.image = selectedImage
    }
self.dismiss(animated: true, completion: nil)

declare ur picker controller as a class variable and set its delegate in viewdidload. 将ur picker控制器声明为类变量,然后在viewdidload中设置其委托。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM