如何在 ViewController 之间正确传递 UIImage?

How to properly pass UIImage between ViewControllers?

试图通过 UITapGestureViewControllers 之间传递 UIImage。我已成功添加 UITapGesture,但是,我的 segue 拒绝执行。

这是我在初始视图中的代码:

var image: UIImage!

func imageTapped() {

        println("it works!")


         func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {

            if (segue == "enlargePhoto") {

                let destinationVC = segue.destinationViewController as! EnlargedPhotoViewController

                destinationVC.bigImage = image


            }else {

                println("your code sucksssss!")
            }

        }
    }

目标 VC 代码:

import UIKit
import Parse

class EnlargedPhotoViewController: UIViewController {

    @IBOutlet var enlargedHomeImage: UIImageView!

    var bigImage: UIImage!


    override func viewDidLoad() {
        super.viewDidLoad()


        self.enlargedHomeImage!.image = self.bigImage

    }

知道为什么我的 UIImage 没有通过吗?我觉得一切都很好。 谢谢!

您将 prepareForSegue 声明为嵌套函数,框架不调用它,这就是为什么您没有将图像传递到目标的原因。正确的方法是在 class 范围内实现 prepareForSegue(与 [=13= 相同的范围)。只需将 prepareForSegue 放在 [=13= 的花括号之外] 像这样:

func imageTapped() {
    // Perform the segue
}

func prepareForSegue() {
// Pass the image reference
}