Попробуйте:
- (void)viewDidDisappear:(BOOL)animated
{
[super viewDidDisappear:animated];
[contentView removeFromSuperView]; //releases contentView
}
Вы должны вызывать метод super при переопределении этого метода.
Кроме того, ContentView, похоже, переиздан в опубликованном вами коде, что заставляет меня верить, что вы сохраняете его где-то в своем реальном коде. В этом случае у вас может быть чрезмерно сохраненный контент-представление, которое не позволит его освободить и очистить от иерархии вашего представления.
Я бы предложил вам изучить что-то вроде этого:
- (void)viewWillAppear:(BOOL)animated
{
contentView = [[[ContentView alloc] initWithFrame:CGRectMake(10, 10, 100, 100)] autorelease];
contentView.userInteractionEnabled = NO;
[self.view addSubview:contentView];
if([self loadContentData] == NO) {
//[contentView release]; //ContentView is now autoreleased and will be dropped when the method exits.
return NO; //this probably has a compiler warning, since it is a (void) method
}
return YES; //this probably has a compiler warning, since it is a (void) method
}