Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

[iOS]How to make a "snapshot" of the current view's state

Tags:

iphone

view

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!

like image 929
Knodel Avatar asked Sep 14 '10 15:09

Knodel


1 Answers

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.

like image 148
Bongeh Avatar answered Nov 06 '22 14:11

Bongeh