将图像放入 UIImageView(另一个 ViewController)时出错

Posted

技术标签:

【中文标题】将图像放入 UIImageView(另一个 ViewController)时出错【英文标题】:Error when putting image to UIImageView (another ViewController) 【发布时间】:2018-12-05 07:17:11 【问题描述】:

我有两个 ViewController - ItemInfoShowImage。在ItemInfo 我有一个 UIImageView itemImg 带有来自数组的图像:

itemImg.image = UIImage(named:item.img)

它运行良好。

但我无法将此图像从ShowImage ViewContrloller 放到 UIImageView fullImage。这段代码来自ItemInfoViewController:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) 
        if segue.identifier == "showImage" 
            let destViewController: showImage = segue.destination as! showImage
            destViewController.title = itemName.text
            destViewController.fullImage.image = self.itemImg.image
        
    

排队

destViewController.fullImage.image = self.itemImg.image

我有一个错误

线程 1:致命错误:打开包装时意外发现 nil 可选值

请帮我解决它。

【问题讨论】:

不要在prepareforSegue方法中直接给UI组件赋值。此时,没有加载任何 UI 组件,因此一切都为零。只需设置一个 UIImage 变量并将其从 WIll/Did Load/Appear 方法之一设置为 UIImageView。 【参考方案1】:

这里destViewController.fullImage.image = self.itemImg.image,您的fullImage 将为零,因为destViewController 的view 尚未加载。

所以我建议你在 ShowImage 控制器上使用 image 属性。

如何做到这一点?:

    在您的 ShowImage 控制器中添加 var image:UIImage? 分配destViewController.image= self.itemImg.image 而不是destViewController.fullImage.image = self.itemImg.image 在您的ShowImage 控制器的viewDidLoad 方法中,将图像设置为您的imageView(fullImage)、fullImage.image = image

【讨论】:

我该怎么做? 在destViewController中创建UIImage的属性并像这样传递——destViewController.image = self.itemImg.image

以上是关于将图像放入 UIImageView(另一个 ViewController)时出错的主要内容,如果未能解决你的问题,请参考以下文章

如何将图像设置为在另一个视图控制器中异步获取的 UIImageView?

将 UIImage 调整为 UIImageView

在 UIImage 上绘制另一个图像 -

UIImageView 重复显示在另一个单元格中

如何将按钮和图像放入 UIScrollView [关闭]

在表格视图单元格内的 UIImageView 中设置图像