0

我有一个简单的 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 传递。

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

谢谢

4

1 回答 1

0

经过一些工作,我设法弄清楚了这一点。

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

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

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

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

于 2016-03-08T08:19:35.983 回答