I am trying to pass the image which is captured from UIImagePickerController
to another ViewController
but the image is not getting passed.
This is the code of the first ViewController
:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
newImageView.contentMode = .scaleAspectFit
newImageView.image = chosenImage
self.performSegue(withIdentifier: "pass", sender: self)
dismiss(animated:true, completion: nil)
let svc = self.storyboard!.instantiateViewController(withIdentifier: "demoViewController") as! demoViewController
present(svc, animated: true, completion: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "pass"
{
let imgpass = segue.destination as! demoViewController
imgpass.newphoto = chosenImage
}
}
Code for the second ViewController
:
override func viewDidLoad() {
super.viewDidLoad()
myImageView.image = newphoto
}
I went through a lot of other similar postings and implemented them too but couldn't get the image passed.
Try this
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject])
{
if let chosenImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
newImageView.contentMode = .scaleAspectFit
newImageView.image = chosenImage
picker.dismiss(animated: true, completion: nil)
let svc = self.storyboard!.instantiateViewController(withIdentifier: "demoViewController") as! demoViewController
svc.newphoto = chosenImage
self.present(svc, animated: true, completion: nil)
}
}