将特定集合视图索引处的图像发送到另一个viewcontroller的问题

时间:2017-09-06 13:07:09

标签: ios swift uicollectionview segue

我知道这似乎是其他用户多次提出的问题。我确实经历了很多,但我无法找出问题的确切原因。

我在网址上的集合视图中显示一组图像,它们存储在UIImage类型的数组中。现在当我点击集合视图时,该特定索引处的图像应显示在另一个viewcontroller中。

didSelectItemAt我这样做......

    func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
         self.thumbnailImage.image = self.arrayOfURLImages[indexPath.row]
         performSegue(withIdentifier: "catalogueDetailIdentifier", sender: nil)

}

但是在这一行我发生了撞车事故,说它意外地发现没有。因此,我无法继续前进。

同样在prepareForSegue,我已经做到了......

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

    if segue.identifier == "myIdentifier" {

        if let targetVC = segue.destination as? DestinationViewController {
            targetVC.myImage = photoThumbnail.image

        }
    }
}

但崩溃本身必须先解决。任何帮助将不胜感激...... :)

1 个答案:

答案 0 :(得分:1)

试试这个:

  func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

             self.thumbnailImage = UIImageView(frame:CGRectMake(0, 0, 100, 100));
             self.thumbnailImage.image = self.arrayOfURLImages[indexPath.row]
             performSegue(withIdentifier: "catalogueDetailIdentifier", sender: nil)

    }

但请记住,您还需要使用以下内容显示thumbnailImage:

self.view.addSubview(self.sampleImageView)

<击> 更新:(因为我现在明白你只想转移它)

var thumbnailImage: UIImage?

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {

         self.thumbnailImage = self.arrayOfURLImages[indexPath.row]
         performSegue(withIdentifier: "catalogueDetailIdentifier", sender: nil)

}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {

  if segue.identifier == "catalogueDetailIdentifier" {

    if let targetVC = segue.destination as? DestinationViewController {
        targetVC.myImage = thumbnailImage!

    }
  }
}