【问题标题】:Error when putting image to UIImageView (another ViewController)将图像放入 UIImageView(另一个 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。

标签: swift uiimageview segue


【解决方案1】:

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

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

如何做到这一点?:

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

【讨论】:

  • 我该怎么做?
  • 在destViewController中创建UIImage的属性并像这样传递——destViewController.image = self.itemImg.image
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-19
  • 2012-10-07
相关资源
最近更新 更多