简体   繁体   English

如何将图片分配给UIImageView(Swift 3)

[英]How to assign a picture to the UIImageView (Swift 3)

I'm trying to add an image from the gallery to the new ViewController, but get an error 我正在尝试将图库中的图像添加到新的ViewController,但是会出错

Creating an image format with an unknown type is an error fatal error: unexpectedly found nil while unwrapping an Optional value 创建具有未知类型的图像格式是一个错误致命错误:在展开Optional值时意外地发现nil

Code: 码:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        if let im = info[UIImagePickerControllerOriginalImage] as? UIImage {
            let vc = self.storyboard?.instantiateViewController(withIdentifier: "editImage") as! EditImageViewController
            vc.imageView.image = im
            self.present(vc, animated: true, completion: nil)
        } else {
            print("Something went wrong")
    }
    imagePicker.dismiss(animated: true, completion: nil)
}

What's my mistake? 我的错是什么?

Your EditImageViewController.imageView is nil. 您的EditImageViewController.imageView是零。 To pass image from outside, you need to add UIImage property to EditImageViewController . 要从外部传递图像,您需要将UIImage属性添加到EditImageViewController

To assign that image to UIImageView , use viewDidLoad() 要将该图像分配给UIImageView ,请使用viewDidLoad()

Something like this: 像这样的东西:

class EditImageViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    var imageToAdd: UIImage?

    override func viewDidLoad() {
        super.viewDidLoad()
        self.imageView.image = imageToAdd
    }
}

To pass image to new controller, just set imageToAdd , so vc.imageView.image = im becomes vc.imageToAdd = im 要将图像传递给新控制器,只需设置imageToAdd ,所以vc.imageView.image = im变为vc.imageToAdd = im

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

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