Передайте Captured / Gallery Image из одного ViewController в другой - PullRequest
0 голосов
/ 14 мая 2019

Я хочу сделать фотографию или выбрать ее из галереи, а затем передать ее в imageView другому ViewController.Я успешно пишу продолжение, но не знаю, как передать изображение из imagePickerController.

Первый ViewController

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

        if let selectedImage = info[.originalImage] as? UIImage{
            imagePicker.dismiss(animated: true){
                self.performSegue(withIdentifier: "goToCropScreen", sender: self)
            }

        }

    }

    //Navigation to other screens
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "goToCropScreen"{
            let destinationVC = segue.destination as! CropViewController
            destinationVC.imageToCrop = //Here is the problem. Idont know what image to use.
        }
    }

Второй ViewController

class CropViewController: UIViewController {

    @IBOutlet weak var cropImageView: UIImageView!

    var imageToCrop : UIImage?

    override func viewDidLoad() {
        super.viewDidLoad()

        cropImageView.image = imageToCrop

    }


}

Я знаючто я не могу использовать selectedImage, потому что он внутри imagePickerController.Есть ли способ использовать его как глобально.

1 Ответ

1 голос
/ 14 мая 2019

Создать переменную в FirstViewController. И сохраните выбранное изображение в этой переменной и передайте значение в prepare for segue method

class FirstViewController: UIViewController {

    var selectedImage: UIImage?

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

            if let selectedImage = info[.originalImage] as? UIImage{
                imagePicker.dismiss(animated: true){
                    self.selectedImage = selectedImage
                    self.performSegue(withIdentifier: "goToCropScreen", sender: self)
                }

            }

        }

    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        if segue.identifier == "goToCropScreen"{
            let destinationVC = segue.destination as! CropViewController
            destinationVC.imageToCrop = self.selectedImage
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...