The best thing you can do in -viewDidDisappear(not -viewWillDisappear; you are still on the screen at this point) is to call for this self.view = nil. This resets the entire view of the controller controller, which will automatically restart for you the next time you need it.
If you have any IBOutlets in these views, you need to set them to zero, otherwise they will not be released. Assuming you have this setup:
@interface MyViewController : UIViewController
{
UIImageView *_imageView;
}
@property (readwrite, retain) IBOutlet UIImageView *imageView;
@implementation MyViewController
@synthesize imageView = _imageView;
Then you need to call self.imageView = nilin your `-viewWillDisappear.
-release ivars, -dealloc. , .
-release, saveCount 1, free(), . , , , , , .
, , . ; , , . , -dealloc , :
[_stuff release]
[_otherStuff release]