0

Good evening,

I have three boxes where users can select images from their phone. I am trying to allow users to upload multiple images one in each box, sort of like tinder or Instagram. When I choose the images, for some reason it just selects multiple of the same image instead of choosing three separate ones. Is there a way to pick the images individually?

The default setup

This is what happens when I select an image

extension newPostViewController: UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@objc func handleSelectJobImageView() {
    let picker = UIImagePickerController()

    picker.delegate = self
    picker.allowsEditing = true

    present(picker, animated: true, completion: nil)
}
@objc func handleSelectJobImageView2() {
    let picker2 = UIImagePickerController()

    picker2.delegate = self
    picker2.allowsEditing = true

    present(picker2, animated: true, completion: nil)
}
@objc func handleSelectJobImageView3() {
    let picker3 = UIImagePickerController()

    picker3.delegate = self
    picker3.allowsEditing = true

    present(picker3, animated: true, completion: nil)
}

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

    var selectedImageFromPicker: UIImage?
    if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage {
        selectedImageFromPicker = editedImage
    } else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage {
        selectedImageFromPicker = originalImage
        if let selectedImage = selectedImageFromPicker{
            JobImageView.image = selectedImage
             dismiss(animated: true, completion: nil)
        }
    }

    var selectedImageFromPicker2: UIImage?
    if let editedImage2 = info["UIImagePickerControllerEditedImage"] as? UIImage {
        selectedImageFromPicker2 = editedImage2
    } else if let originalImage2 = info["UIImagePickerControllerOriginalImage"] as? UIImage {
        selectedImageFromPicker2 = originalImage2
        if let selectedImage2 = selectedImageFromPicker2{
            JobImageView2.image = selectedImage2
             dismiss(animated: true, completion: nil)
        }
    }
    var selectedImageFromPicker3: UIImage?
    if let editedImage3 = info["UIImagePickerControllerEditedImage"] as? UIImage {
        selectedImageFromPicker3 = editedImage3
    } else if let originalImage3 = info["UIImagePickerControllerOriginalImage"] as? UIImage {
        selectedImageFromPicker3 = originalImage3
        if let selectedImage3 = selectedImageFromPicker3{
            JobImageView3.image = selectedImage3
             dismiss(animated: true, completion: nil)
        }
    }
}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    print("canceled picker")
    dismiss(animated: true, completion: nil)
}
}
  • 1
    Possible duplicate of [How to select Multiple images from UIImagePickerController](https://stackoverflow.com/questions/20756899/how-to-select-multiple-images-from-uiimagepickercontroller) – Ahmad F Nov 19 '18 at 00:39
  • @AhmadF Thanks but I don't think so. I have viewed that question a few times and I don't think we are asking the same thing. I am looking to allow users to upload three different images into boxes. –  Nov 19 '18 at 00:42
  • Ok! so by using a "multiple selection" view, you would be able to select 3 images and display them in your image views... – Ahmad F Nov 19 '18 at 00:43
  • @AhmadF I have uploaded images to show what I mean –  Nov 19 '18 at 00:51
  • I'd assume that it has nothing to do with how the image views will be displayed, its just about picking 3 images simultaneously. It should be ok. – Ahmad F Nov 19 '18 at 00:53
  • @AhmadF how would I call “multiple selection” view –  Nov 19 '18 at 00:54
  • As mentioned in my first comment question, you will find the proper library :) – Ahmad F Nov 19 '18 at 00:55
  • @AhmadF I don’t Necessarily feel comfortable downloading pod files from random individuals –  Nov 19 '18 at 00:55
  • I would assume that creating their own respective funcs would allow me to choose different images for each imageview –  Nov 19 '18 at 01:36
  • @AhmadF I updated my code a little. I would assume that should fix my problem without installing an additional pods? –  Nov 19 '18 at 01:38

1 Answers1

0

imagePickerController(_ picker: , didFinishPickingMediaWithInfo info:) only returns 1 image from UIImagePicker. Hence, your logic above is wrong as selectedImageFromPicker, selectedImageFromPicker2, and selectedImageFromPicker3 are referring to the same image from the imagePicker. That's why you are seeing 3 identical images.

I don't think there is a way to pick multiples images with a basic image picker. What you can do is to load all the images into a collectionView and let the user select the cell(s) instead. Or you can always use various 3rd party library out there.

Linh Ta
  • 593
  • 6
  • 11