为什么viewcontroller segue中的发送者与集合视图单元格segue相反

时间:2017-05-26 17:52:42

标签: ios swift uicollectionview segue

我有一个ViewController,它是一个CollectionViewDelegate。当用户点击图像时,我想要在我的CollectionView中切换到图像的详细视图。我将segue从我的单元格连接到详细VC并使用了此代码。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    //segue to detail view of image
    if segue.identifier == "ShowDetail",
       let detailImageView = segue.destination as? CollectionDetailViewController
    {
        detailImageView.imageName = sender as! UIImage
    }
}

显示的错误是"无法将发件人CollectionView转换为UIImage"。相反,当我通过我的VC进行搜索时,我能够将发送者转发给UIImage。那是为什么?

1 个答案:

答案 0 :(得分:0)

我不知道它在你没有显示的代码中是什么或为什么工作...但在这种情况下,如果sender是一个单元格,你不能简单地声明“现在你是一个UIImage”因此就是这样。

我假设你的集合视图单元格中有UIImageView,所以更有可能,你想做类似的事情:

if let cell = sender as? MyCustomCell {
    if let image = cell.theImageView.image as? UIImage {
        detailImageView.imageName = image
    }
}

注意:我只是输入此内容,而不是运行它,因此可能需要调整一两次。