tags:

views:

36

answers:

1

I need to make a snapshot or a screenshot - call it as you like- of the current view and then display it in the modal view.

Because if I just write this in the ModalView's View controller

MyAppViewController *viewController = [[MyAppViewController alloc] init];
self.view = viewController.view;

All the methods of the MyAppViewController are called as well, but I don't need it, I just need to "save" everything that was on the screen when the ModalView appeared and show it in the ModalView's view.

How can I do it? Thanks in advance!

+3  A: 

I would suggest doing this:

Have a method that creates an image out of the contents of the view.

-(UIImage*) makeImage {

UIGraphicsBeginImageContext(self.view.bounds.size);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return viewImage;
}

Create a custom init method for your modal view, and also give your modalView an instance variable that can hold a UIImage something like...

- (id)initWithImage:(UIImage *)temp {
   myImage = temp;
}

Then in your modalView, perhaps in the viewDidLoad method, create a UIImageView and set the image to myImage

Hopefully this achieves what you are trying to do.

Bongeh
Thank you! I'll try this
Knodel
Yes! That's exactly what I've needed! Thank you so much!
Knodel
your welcome :)
Bongeh