从内存中删除View Controller?

时间:2011-08-07 07:17:48

标签: objective-c ios view uiviewcontroller subview

我似乎在找到这个答案时遇到了一些麻烦。

我的应用程序使用以下代码加载视图控制器:

World_Pick *world_pick = [[World_Pick alloc] initWithNibName:@"World Pick" 
bundle:nil];

world_pick.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal;
[self presentModalViewController:world_pick animated:YES];

[world_pick release];

问题是之前的视图没有从内存中释放,只是添加到它。我尝过像

这样的东西
[self.view removeFromSubview];
[viewController release];
ViewController = nil;

这些似乎都不起作用。有人能帮助我吗?

由于

2 个答案:

答案 0 :(得分:1)

在上面的代码中呈现world_pick,self的视图控制器应该可以单独留下 - 毕竟它提供了一个模态视图控制器,你将回到那个视图控制器当模态控制器被解雇时。它管理的视图也应该保持不变。如果有内存警告,它可能会被卸载,但是如果有可用内存,它应该保留,以便在取消模态视图控制器时它就位。

你有什么理由担心这个吗?

答案 1 :(得分:1)

如果我正确理解你的意思,我会说这是正常的,当你以模态方式呈现一个视图控制器时,基础视图控制器没有被删除而视图仍然存在。就我所知,这就是模态视图控制器的呈现方式。

我不知道您要在应用中构建哪个UI,但也许您应该考虑使用UINavigationController,或者可能只需在需要时添加/删除您的视图到基本视图。这当然只是一个猜测,我不知道你想要做什么,但如果你提供更多细节,我可以进一步帮助。