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

时间:2016-03-08 05:16:53

标签: ios swift segue cloudkit ckasset

我有一个简单的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 个答案:

答案 0 :(得分:0)

经过一些工作后,我设法解决了这个问题。

对于其他可能尝试同样事情的人......

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

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

我还在学习,所以我这样做可能完全错了。