繁体   English   中英

如何将UI图像从一个视图控制器传递到另一个?

[英]How to pass UI image from one view controller to another?

我需要将图像从一个视图控制器传递到另一个视图,我让用户NSuserdefault将图像变量声明为全局变量,但是由于未捕获的异常“ NSInvalidArgumentException”,它显示了此错误应用程序,原因:“试图插入非属性列表对象

 func imagePickerController(picker: UIImagePickerController!, didFinishPickingImage image: UIImage!, editingInfo: NSDictionary!) {
self.dismissViewControllerAnimated(true, completion: { () -> Void in
})  
imageview.image = image
NSUserDefaults.standardUserDefaults().setObject(image, forKey:"image")
NSUserDefaults.standardUserDefaults().synchronize()
}

你什么意思? 将UIImage的变量传递给另一个viewController? 您提供的信息太少。

也许您想查看此链接, 使用委派与其他视图控制器进行通信

只需创建一个NSString * imageName属性,然后在推入/展示一个视图控制器之前对其进行设置,就可以在其他视图控制器中读取该属性来创建UIImage。

您不能将图像直接保存到UserDefaults中,您可以将图像压缩为png / jpeg数据,也可以将数据保存到userDefault中。 使用方法

NSData *UIImagePNGRepresentation(UIImage *image);

if imageData {
    NSUserDefaults.standardUserDefaults().setObject(imageData, forKey:"image")
    NSUserDefaults.standardUserDefaults().synchronize()
}

读取userDefaults时,可以先读取数据,然后使用方法将数据转换为图像

UIImage-imageWithData:或快速样式的UIImage(data :)

通常,我们不像上面那样做,我们将图像保存到文件中,并将文件的路径保存到userDefault中。

要使用NSUSerdefaults存储图像:

var testimage = UIImage(named: "testimage.png");
NSUserDefaults.standardUserDefaults().setObject(UIImagePNGRepresentation(testimage), forKey:"image")
}

要在另一个类中检索它:

var imagedata: NSData = NSUserDefaults.standardUserDefaults().dataForKey("image")!
        imageview.image = UIImage (data: imagedata)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM