Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
iPhone:如何使用NSUserDefault将从一个视图获取的图像发送到从照片库获取的另一个视图?_Iphone_Objective C - Fatal编程技术网

iPhone:如何使用NSUserDefault将从一个视图获取的图像发送到从照片库获取的另一个视图?

iPhone:如何使用NSUserDefault将从一个视图获取的图像发送到从照片库获取的另一个视图?,iphone,objective-c,Iphone,Objective C,我已成功从照片库中获取图像,并已将其设置在按钮上,但现在我想在另一个视图中发送此图像,那么如何使用NSUserDefault发送此图像 请提供代码,如果你有 Xyx…… < P>在从一个视图推到另一个视图时,我们可以传递这个图像对象……考虑“IGETOPASS”是您的UIIVION对象。在FieldVIEW控制器中使用此代码。M,按钮动作: NextViewController *nextView=[[NextViewController alloc]init]; [nextView init

我已成功从照片库中获取图像,并已将其设置在按钮上,但现在我想在另一个视图中发送此图像,那么如何使用NSUserDefault发送此图像

请提供代码,如果你有


Xyx……

< P>在从一个视图推到另一个视图时,我们可以传递这个图像对象……考虑“IGETOPASS”是您的UIIVION对象。在FieldVIEW控制器中使用此代码。M,按钮动作:

NextViewController *nextView=[[NextViewController alloc]init];
[nextView initialiseWithImage:imageToPass] ;
[self.navigationController pushViewController:nextView animated:YES];
[nextView release];
在“NextViewController.m”中,使用以下代码:

-(void)initialiseWithImage:(UIImage*)image{


//Use the "image".`enter code here`


}

或者您也可以直接从NextViewController的NSUserDefault中获取。

您可以使用上面的NSUserDefault代码,但有关NSUserDefault的问题是它总是存储值。你必须根据它来实施条件。使用后将其设为零。

您不应使用NSUserDefaults在对象之间发送数据。您可以在imageview上设置use image object和Pass。您可以将图像转换为NSData并放入UserDefaults中。您的意思是“或者您也可以从下一个ViewController直接从NSUserDefaults中获取”?我们不能使用NSUserDefault将数据发送到另一个视图…我的意思是,如果图像存储在Userdefaults中,他可以直接从NextViewController检索它。这是非常正确的Praveen。只需要在NextViewController类中使用UIImage(假设imageName)实例变量,并使用属性进行合成。现在只需用image:imageToPass替换[nextView initialise];行nextView.imageName=imageToPass;我们无法在NSUserDefaultNo中存储图像。No.No.No.No.No.不要使用NSUserDefaults在对象中的方法之间传输数据或在类之间传输数据。NSUserDefaults用于保存下次启动应用程序时所需的少量数据。它可能“绝对有效”,但有效代码和良好代码之间有区别。你好,尼克,我同意你的看法。但是你怎么能说使用NSUserDefaults我们无法达到预期的结果呢?这取决于使用NSUserDefaults(编程)的方式。如果我们删除作为ViewController的相应键的对象(并且NextViewController使用了NSUserDefaults中的ImageData)课堂负荷。这会很好。所以在投票之前,请仔细阅读问题并认真回答。仅仅因为问题被提出并不意味着它应该被逐字逐句地回答。问题是,他想“用另一个视图发送此图像”。回答关于SO的问题是为了教育人们。如果我们只是盲目地回答这个问题,那么人们将如何学习?最好解释“正确”的方法,并指出建议的解决方案不好的原因。这样,人们的技能和知识就会增长。如果你只有一把锤子,每个问题看起来都像钉子。我也这么说。看看答案。不是这样,我很早就编辑了我的问题。但你还没有看到这种变化。
Use Below Code It's Easy to use

-(void)storeImageNSDefaults{
//here stored images in NSUserDefaults.
//where imageName is image named.
NSData* imgData=UIImagePNGRepresentation(imageName);
[[NSUserDefaults  standardUserDefaults] setObject:imgData forKey:@"image"];
[[NSUserDefaults  standardUserDefaults]synchronize];
}

 //getImage from Nsusedefaults 
 // in other ViewController
-(void)showImage{
NSData* image=[[NSUserDefaults  standardUserDefaults] objectForKey:@"image"];
UIImage* img=[UIImage imageWithData:image];
//now you can use that img image on any imageview
}

It'll Definitely Work

But i'll suggest you use the praveen's code with one change.

nextView.imageName=imageToPass
in place of [nextView initialiseWithImage:imageToPass] ;