我需要释放我在 navigationViewController 上的 mainViewController 视图,以避免收到我收到的内存警告。
加载视图的好习惯是在“loadview”方法中,但是当我尝试解除视图(当我转到堆栈的下一个控制器时)执行“self.view = nil”时,它再次调用“loadview”方法所以什么也没有发生。
我解决了在“viewWillAppear”方法中加载视图的问题,但是,我的问题是:
那个程序正确吗?如果不是(这就是我的想法),我该如何释放该视图以释放其内存?
哪种方法最好(或更正确)?
这是代码:
'loadView' 不加载视图
- (void)loadView
{
[super loadView];
(some more code)
}
它在这里加载的视图
- (void)viewWillAppear:(BOOL)animated
{
[super viewWillAppear:animated];
if (!pral)
{
pral = [[TouchDrawView alloc] initWithFrame:[UIScreen mainScreen].bounds];
[self setView:pral];
[pral release];
}
(some more code)
}
这是对堆栈的下一个 viewController 的调用
- (void)menus:(id)sender
{
opcions *ops = [[opcions alloc] init];
[[self navigationController] pushViewController:ops animated:YES];
[ops release];
//Here I'm trying to free memory releasing the view
[pral removeFromSuperview];
pral = nil;
self.view = nil;
}
谢谢