如何将UI ImageView从一个视图控制器传递到另一个视图控制器?迅捷3

pri*_*riM 1 iphone uiimage ios swift

我试图将这个UI图像视图从一个视图控制器传递到同一个故事板上的另一个视图控制器.我已经将UI TextField传递给UI Label和UI Button.现在我需要使用UI图像视图来完成它.

这是我的两个视图控制器.

import UIKit

class PhotoShareViewController: UIViewController {

    @IBOutlet weak var imageView: UIImageView!
    @IBOutlet weak var contentTextView: UITextView!

    @IBOutlet weak var thatTextField: UITextField!
    @IBOutlet weak var thisTextField: UITextField!
    var presenter: PhotoShareModuleInterface!
    var image: UIImage!


    @IBAction func thisUploadPhoto(_ sender: Any) {

        if thisTextField.text != "" && thatTextField.text != ""
        {
            performSegue(withIdentifier: "segue", sender: nil)
        }
    }


    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {


        var photoShareLabelViewController = segue.destination as! PhotoShareLabelViewController


        photoShareLabelViewController.thisString = thisTextField.text!

        photoShareLabelViewController.thatString = thatTextField.text!

    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)

        imageView.image = image
    }

    override var prefersStatusBarHidden: Bool {
        return true
    }

    @IBAction func didTapCancel(_ sender: AnyObject) {
        presenter.cancel()
        presenter.pop()
    }

 /*   @IBAction func didTapDone(_ sender: AnyObject) {
        guard let message = thatTextField.text, !message.isEmpty else {
            return
        }
        guard let messageOne = thisTextField.text, !messageOne.isEmpty else {
            return
        }



        presenter.finish(with: image, content:message)
        presenter.dismiss()
    }
}
 */
}

extension PhotoShareViewController: PhotoShareViewInterface {

    var controller: UIViewController? {
        return self
    }
}
Run Code Online (Sandbox Code Playgroud)

如果有人能告诉我如何将图像从一个视图控制器发送到另一个视图控制器,这将是非常棒的!

Lou*_*nco 5

你没有展示PhotoShareLabelViewController,但可能它有:

var thisString: String?
Run Code Online (Sandbox Code Playgroud)

var thisImage: UIImage?
Run Code Online (Sandbox Code Playgroud)

然后以同样的方式传递它 thisString

photoShareLabelViewController.thisImage = imageView.image
Run Code Online (Sandbox Code Playgroud)

并把它捡起来的viewDidLoadPhotoShareLabelViewController(这可能是当你随意组成thisString).就像是:

self.imageView.image = self.thisImage
Run Code Online (Sandbox Code Playgroud)

但是,使用您正在使用的任何变量名称.

简而言之,只需复制您正在做的事情thisString,但使用a UIImage作为类型而不是String.

注意:您没有将UIImageView从一个VC传递到另一个VC(这是不可能的).您将图像从imageview传递到另一个VC.