我目前正在为iOS构建应用程序。我正在尝试保存用户当前正在查看的内容,以便我可以将其加载到下一个视图中。我知道如何通过
保存图像 CGSize size = [self.tableView bounds].size;
UIGraphicsBeginImageContext(size);
[[self.tableView layer] renderInContext:UIGraphicsGetCurrentContext()];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
但是我不知道如何将它们移动到下一个视图控制器。出于某种原因,上面拒绝在下一个视图控制器的图像视图中加载它。
解决
_incommingImage是一个图像视图。
我这样保存。
NSData *imageData = UIImageJPEGRepresentation(newImage, 1.0);
NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *path = [[pathArr objectAtIndex:0]
stringByAppendingPathComponent:@"img.data" ];
[imageData writeToFile:path atomically:YES];
我加载它然后用它。
NSArray *pathArr = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask,
YES);
NSString *path = [[pathArr objectAtIndex:0]
stringByAppendingPathComponent:@"img.data" ];
NSData *retrievedData = [NSData dataWithContentsOfFile:path];
_incommingImage.image = [UIImage imageWithData:retrievedData];
[_incommingImage release];
答案 0 :(得分:1)
我同意罗伯特的观点。
FirstViewController.m:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
if ([segue.identifier isEqualToString:@"Your_Identifier"]) {
SecondViewController *secondVC = segue.destinationViewController;
secondVC.incommingImage = myImage;
}
}
SecondViewController.h:
@property (strong, nonatomic) UIImage *incommingImage;
一旦出现SecondViewController,图像将自动设置为incommingImage。确保在故事板上设置segue的标识符以匹配prepareForSegue下的标识符。
答案 1 :(得分:0)
我在photoApp项目中做了类似的事情,我有一个显示图像的视图。
1.lets继续在我们的nextView中设置UIImage属性。
NextView.h
@interface
@property (nonatomic, strong) UIImage * image;
@end
2.设置属性中的图像。这实际上可以在segue上完成。从查看代码开始,我不确定segue是如何发生的,但这里是设置segue的代码,它也设置了背景图像。
NextView *nextView = [[NextView alloc]init];
nextView.image =
//the image that you want.
// I don't know how you are getting this image so
//you may have to have other code now to get this image from its picker method.
3.在下一个视图中,你也必须有一个UIImageView。 imageView将需要在后台,因此显示在其中的所有内容都可以是此UIImageView的子视图。
- (void)viewDidLoad
{
[super viewDidLoad];
UIimageView *imageView = [[UIImageView alloc]initWithImage:image];
imageView.userInteractionEnabled=YES
//if you need to add say a button on the view
//your going to have to configure the button's dimensions this is a template.
UIButton *buttonView = [UIButton alloc]initWithFramce:CGRectMake(X,Y,Width,Height)];
[imageView addSubview:buttonView];
}
编辑:如果您正在使用故事板,请告诉我,在这种情况下,我可以调整此代码,以便使用Storyboard实现更平滑的过渡。