通过 segue 将 CKAsset 图像传递给 ViewController?

Posted

技术标签:

【中文标题】通过 segue 将 CKAsset 图像传递给 ViewController?【英文标题】:Passing a CKAsset image through a segue to ViewController? 【发布时间】:2016-03-08 05:16:53 【问题描述】:

我有一个简单的 TableView,其中包含从 CloudKit 中提取的文本和图像。我试图在选择时将该数据传递给 detailViewController,我可以获得文本,但我一直坚持通过 prepareForSegue 发送图像。

我有一个 TableViewController 和 DetailViewController。

TableViewController 的单元格包含来自 CK 的图像和文本。

DetailViewController 有 UIImageView 和要填充的标签。

这是代码..

    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) 
    if segue.identifier == "showDetailView" 
        if let indexPath = tableView.indexPathForSelectedRow 
            let destinationController = segue.destinationViewController as! DetailViewController

            let result = results[indexPath.row]
            let image = result.objectForKey("Image1") as! CKAssset
            destinationController.imageViewMain.image = UIImage(data: NSData(contentsOfURL: image.fileURL)!)

        
    

这不仅仅是不工作,我实际上正在崩溃 EXC_BAD_INSTRUCTION 当我选择表格行时。 tableView 工作正常并从数据库中获取数据/图像,只是似乎无法通过 segue。

任何帮助或指出正确的方向将不胜感激。

谢谢

【问题讨论】:

【参考方案1】:

经过一番努力,我设法弄清楚了。

对于其他可能正在尝试相同事情的人...

基本上我试图在 prepareForSegue 函数中创建 UIImage,虽然这可能是可能的,但我无法让它工作。

我的解决方案是通过 segue 传递 CKAsset,然后在 DetailViewController 中,我能够通过传递来自 CKAsset 的 fileURL 来使用 CKAsset 创建 UIImage。

我还在学习,所以我的做法可能完全错误。

【讨论】:

以上是关于通过 segue 将 CKAsset 图像传递给 ViewController?的主要内容,如果未能解决你的问题,请参考以下文章

通过 Collection View Cell Swift 中的 segue 将图像传递给另一个视图控制器

如何通过 segue 将图像传递到新的视图控制器?

UIImageView 将 (segue) nil 传递给另一个 ViewController

使用 segue 传递图像的指针类型不兼容?目标c Xcode

无法将 CKAsset 类型的值分配给 UIImage 类型

如何在不使用 segue 的情况下在视图控制器之间传递图像