OK here’s a weird one!
this is the code:
@synthesize imageViewX, myScrollViewX;
- (void)viewDidLoad {
imageViewX = [[UIImageView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame];
imageViewX.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
imageViewX.contentMode = UIViewContentModeScaleAspectFit;
imageViewX.backgroundColor = [UIColor clearColor];
//self.view = imageView;
myScrollViewX.contentSize = CGSizeMake(imageViewX.frame.size.width, imageViewX.frame.size.height);
myScrollViewX.backgroundColor = [UIColor blackColor];
myScrollViewX.maximumZoomScale = 4.0;
myScrollViewX.minimumZoomScale = 1.0;
myScrollViewX.clipsToBounds = YES;
myScrollViewX.delegate = self;
CGPoint scrollCenter = [myScrollViewX center];
[imageViewX setCenter:CGPointMake(scrollCenter.x,
scrollCenter.y )];
[myScrollViewX addSubview:imageViewX];
self.view = myScrollViewX;
[myScrollViewX autorelease];
}
- (void)viewWillAppear:(BOOL)animated {
imageViewX.image = [stm.image valueForKey:@"image"];
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
return imageViewX;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}
- (void)dealloc {
[super dealloc];
[imageViewX release];
[xray release];
}
@end
Here is the situation:
Drill down tableview app.
select row.
go into View1 with tableview with tableheaderview.
tableheaderview got two buttons.
button1 takes you to the view with the described code above.
button2 takes you to a view with exact similar code!
If i call the first button1 and return to the View1 and back to initial view NO LEAKS
If i select another row, go to View1 and select button1 and back to initial view NO LEAKS
3rd time lucky!!Do the same exact thing as above GOT LEAKS!!!
WHY????
Senario 2 select row go to View1 select button1 go to view with code above, back,
select button2 go to view with exact code as above GOT LEAKS!!!
drives me crazy!!!!
HELP???
You’re doing a cardinal sin here: the overriding of the
viewproperty inviewDidLoadThe only place you are allowed to set the
viewproperty of a view controller, is inloadView. The default implementation will check for a nib with the same name as the view controller class, and create a simple white view if it can’t find a nib. You can override it to create your own view. Don’t call[super loadView]in it.Make sure you only create that one view in
loadView, though, and create additional subviews inviewDidLoad.Also, you may find
[UIScreen mainScreen].applicationFrameuseful for setting the frame in your customloadViewimplementation.