首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift - ImagePicker不执行委托

Swift - ImagePicker不执行委托
EN

Stack Overflow用户
提问于 2016-10-04 10:28:57
回答 1查看 217关注 0票数 2

我只想在iPhone相机的ImageView中显示一个图像。这是项目的第一步,但不起作用.

这里是我的代码:

代码语言:javascript
复制
import UIKit
import MobileCoreServices

class ViewController: UIViewController,UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var scanButton: UIButton!
    @IBOutlet weak var textfield: UITextField!

     let imagePicker = UIImagePickerController()


    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        self.imagePicker.modalPresentationStyle = UIModalPresentationStyle.currentContext
        self.imagePicker.delegate = self
        self.imagePicker.mediaTypes = [kUTTypeImage as String]
        self.imagePicker.sourceType = .camera
        self.imagePicker.allowsEditing = true;


    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    //MARK: - Actions

    @IBAction func scanAction(_ sender: UIButton) {

        print("----- scanAction -----");

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


    //MARK: - UIImagePickerControllerDelegate

    private func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {

        print("----- didFinishPickingMediaWithInfo -----");

        var image:UIImage!;
        if let  pickedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
            image = pickedImage;
        }
        else {
            image = info[UIImagePickerControllerOriginalImage] as! UIImage;
        }

        self.imageView.image = image;


        dismiss(animated: true, completion: nil)
    }

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        print("----- imagePickerControllerDidCancel -----");

        dismiss(animated: true, completion: nil)
    }

}

我看到了动作按钮的打印,但是我从来没有看到下面的那个:

代码语言:javascript
复制
print("----- didFinishPickingMediaWithInfo -----");

我以前已经做过这样的imagePicker了,所以我不明白为什么它不能工作。

有人能帮帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-04 10:36:54

在Swift 3中,信息的类型被更改为[String : Any],而不是[String : AnyObject],而且您还没有添加_作为第一个参数标签,所以请像下面这样更改您的方法。

代码语言:javascript
复制
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    print("----- imagePickerControllerDidCancel -----");
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39849950

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档