Ios 为什么我会犯错误;致命错误:在展开可选值“0”时发现零;?

Ios 为什么我会犯错误;致命错误:在展开可选值“0”时发现零;?,ios,swift,uiimageview,segue,modalviewcontroller,Ios,Swift,Uiimageview,Segue,Modalviewcontroller,目前,我有4个小的ImageView,显示从相机拍摄的图像。当我点击其中一个图像时,我希望它能把我带到一个单独的模态视图控制器,在那里屏幕会填满整个VC。下面的代码显示,我在较小的ImageView上附加了4个无文本按钮,单击这些按钮时,我希望将我带到已设置的单独的模式视图控制器 imageView5是我在模态VC上设置的imageView,“bigImager”是序列标识符 如果你有什么想法,请告诉我 @IBAction func bigImage1(sender: AnyObject) {

目前,我有4个小的ImageView,显示从相机拍摄的图像。当我点击其中一个图像时,我希望它能把我带到一个单独的模态视图控制器,在那里屏幕会填满整个VC。下面的代码显示,我在较小的ImageView上附加了4个无文本按钮,单击这些按钮时,我希望将我带到已设置的单独的模式视图控制器

imageView5是我在模态VC上设置的imageView,“bigImager”是序列标识符

如果你有什么想法,请告诉我

@IBAction func bigImage1(sender: AnyObject) {
    if imageView1.image != nil {

    print(sender.tag)
    }
}

@IBAction func bigImage2(sender: AnyObject) {
    if imageView2.image != nil {

   self.performSegueWithIdentifier("bigImager", sender: self)
    }
}

@IBAction func bigImage3(sender: AnyObject) {
    if imageView3.image != nil {

    self.performSegueWithIdentifier("bigImager", sender: self)
    }
}

@IBAction func bigImage4(sender: AnyObject) {
    if imageView4.image != nil {

   self.performSegueWithIdentifier("bigImager", sender: self)
    }
}


override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "bigImager" {
       let dvc: ImageViewController = segue.destinationViewController as! ImageViewController
        dvc.imageView5.image = imageViewArray[sender!.tag].image

    }
}

检查prepareForSegue中的发送方是否为非nil

是否为
imageView5
隐式展开可选?如果是这样,它可能还没有被创建

我建议将
var-image:UIImage?
属性添加到
ImageViewController
。然后您可以这样设置:

if let dvc = segue.destinationViewController as? ImageViewController {
    dvc.image = imageViewArray[sender!.tag].image
}
ImageViewController
中,您可以在适当的时间设置图像。一种方法是使用
didSet

class ImageViewController: UIViewController {
    var image: UIImage? {
        didSet {
            updateViews()
        }
    }

    var imageView5: UIImageView! {
        didSet {
            updateViews()
        }
    }

    func updateViews() {
        if imageView5 != nil {
            imageView5.image = image
        }
    }
}

显然,我看不到您为imageViewArray设置值的任何地方,请确保此数组设置正确。

错误发生在哪一行?我假设它是条件inside
prepareforsgue
中的两行之一。