在uicollectionview上录制时将图像传递给swift中的详细视图控制器

时间:2015-10-02 19:28:15

标签: image swift view uiviewcontroller uicollectionview

我已经有一段时间了,但似乎无法快速破解它

我希望用户能够在uicollectionView中选择一个图像,并且该图像显示在详细的视图控制器中,我可以通过一些文本很容易地做到这一点, 当预先加载静态图像数组时,我可以这样做。但我似乎无法在任何地方找到装有相机图像的集合视图。

我明白我需要使用

override func performSegueWithIdentifier(identifier: String, sender: AnyObject?) {
  }

和此功能隔离选定的单元格。

  func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
  }

我确实有这些渠道       @IBOutlet weak var collectionView:UICollectionView!

  var images = [UIImage]()

图像选择器通过

将所有图像存储到此阵列
  images.insert(newImage, atIndex: 0)

当数组传递给detailviewcontroller时,我明白必须将其复制到另一个本地数组中,然后我将如何获得首先显示的当前图像,可能使用indexPath.Row

此致

1 个答案:

答案 0 :(得分:1)

我没有使用segues,实际上我不太明白你的问题是什么,但我会试着告诉你如何实现它。

首先,你有一个带图像的数组,所以我相信你的图像应该作为图像访问[indexPath.row]

让我们假设您已经拥有UIVmageController类,其中包含UIImageView。 如果是这样,你可以这样写:

func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
    let myVC = MyViewController()
    myVC.imageView.image = images[indexPath.row]
    self.presentViewController(myVC, animated: true, completion: nil)
}

表示模态或

func collectionView(collectionView: UICollectionView, didDeselectItemAtIndexPath indexPath: NSIndexPath) {
    let myVC = MyViewController()
    myVC.imageView.image = images[indexPath.row]
    self.navigationController?.pushViewController(myVC, animated: true)
}

如果您想将其显示为导航。

我相信使用segues它基本上是相同的,但我认为你必须使用func prepareForSegue,你知道,准备segue(func performSegueWithIdentifier将执行它)。在prepareForSegue中,您应该检查您的segue的标识符

if segue.identifier == "myIdentifier" {
  //your code here
}

如果此标识符正确,请将命令发送到myVC。