自定义CollectionView Cell PrepareForSegue

时间:2015-05-28 12:23:04

标签: ios swift uicollectionview uicollectionviewcell

我有一个自定义UICollection View Cell。该单元格中的一个属性是cellImageView。当用户选择一个单元格时,我想将该视图(cellImageView.image)中的图像传递给下一个单元格。以下是我尝试过的内容:

if let indexPath = self.collectionView?.indexPathForCell(sender as! UICollectionViewCell)
{
    if segue.identifier == "show"
    {
        var segue = segue.destinationViewController as! ViewPhoto
        segue.imageURL = URLToPass

    }
}

但很快意识到这是错误的路线。这样做的最佳方法是什么?提前致谢。

1 个答案:

答案 0 :(得分:0)

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) 
{ 
  if let cell = self.collectionView.cellForItemAtIndexPath(indexPath) as? GalleryClass
  {
    let imageToPass = cell.cellImageView.image
    self.performSegueWithIdentifier(mySegue, sender: imageToPass)
  }
}

prepareForSegue 函数中:

if segue.identifier == "show"
{
  var segue = segue.destinationViewController as! ViewPhoto
  // segue.imageURL = URLToPass
  segue.image = sender as! UIImage
}

通过这种方式,您可以在自己的委托方法中保留包含 CollectionView 内容的代码,如果您将来必须更改它,则更容易维护。而且您只能在 prepareForSegue 函数中传递您实际需要的数据。