【发布时间】:2014-05-14 09:05:37
【问题描述】:
我搜索了很多,但不幸的是没有找到可以解决我问题的类似问题。
例如,我没有使用委托,所以强大的委托指针不是问题。
有一个 UItabbarcontroller 作为根视图控制器。加载该选项卡栏控制器后,它将在顶部显示一个视图控制器(模态)。一旦该视图控制器完成其工作,关闭视图控制器并返回到 TabBarController。原因是在那个视图控制器中,它有一个消耗大约 10mb 内存的背景图像。
我在 -viewDidAppear 中呈现视图控制器:
- (void)viewWillAppear:(BOOL)animated
{
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
if ([userDefaults valueForKey:@"token"]==NULL) {
UIStoryboard *storyboard = [self storyboard];
UINavigationController *navController = [storyboard instantiateViewControllerWithIdentifier:@"SignInNavigationController"];
[self presentViewController:navController animated:NO completion:nil];
}
}
该导航控制器是该视图控制器的根控制器。 (我希望这不是问题)
这就是我关闭视图控制器的方式:
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
它们之间没有其他联系。
编辑: 有人问这个问题是什么,所以我的问题是,既然那个视图控制器被解除了,那它的内存应该被收集回来吧?或者如果没有,有什么办法可以收回吗?
(当然是 ARC)
【问题讨论】:
-
还有什么问题? SignInNavigationController 永远不会被释放?或者也许只是图像从未被释放?您可以将 -(void)dealloc 方法添加到 SignInNavigationController 并在其中放置一个断点以找出这是否真的是您的问题!
标签: ios objective-c memory-management uiviewcontroller