先前的ViewController在以编程方式更改Rootviewcontroller后是否释放了内存?

时间:2015-12-21 12:08:46

标签: ios uistoryboard

我在iOS中有与内存管理相关的查询。当我登录到特定应用程序并且我进行注册过程并且在4屏幕之后,我必须跳到主屏幕。所以我不需要前4个屏幕。所以我称之为以下方法

AppDelegate *appdelegate = [[UIApplication sharedApplication] delegate];
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
UINavigationController *root=[storyboard instantiateViewControllerWithIdentifier:@"trend_navigation"];
appdelegate.window.rootViewController = root;
[appdelegate.window makeKeyAndVisible];

我的问题是,之前的屏幕仍然存在于主屏幕后面或者是发行内存?

1 个答案:

答案 0 :(得分:0)

如果您的视图控制器或它们分配的任何结构没有其他强引用,是的,它们将自动发布(假设您使用ARC,这当然是默认设置)。

请注意,视图控制器可能有很多原因留在内存中,包括任何未失效的计时器,块引用等。

您可以使用乐器检查对象是否正确发布。