将图像放入 UIImageView(另一个 ViewController)时出错
Posted
技术标签:
【中文标题】将图像放入 UIImageView(另一个 ViewController)时出错【英文标题】:Error when putting image to UIImageView (another ViewController) 【发布时间】:2018-12-05 07:17:11 【问题描述】:我有两个 ViewController - ItemInfo
和 ShowImage
。在ItemInfo
我有一个 UIImageView itemImg
带有来自数组的图像:
itemImg.image = UIImage(named:item.img)
它运行良好。
但我无法将此图像从ShowImage
ViewContrloller 放到 UIImageView fullImage
。这段代码来自ItemInfo
ViewController:
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)时出错的主要内容,如果未能解决你的问题,请参考以下文章