从parentViewController中删除后,childViewController没有被释放

时间:2012-12-04 13:55:16

标签: uiview uiviewcontroller automatic-ref-counting ios5

我正在添加一个子视图控制器,如下所示:

loginViewController = [self.storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"];
    loginViewController.delegate = self;

[self addChildViewController:loginViewController];
[self.view addSubview:loginViewController.view];
loginViewController.view.frame = self.view.bounds;
[loginViewController didMoveToParentViewController:self];

将其删除如下:

[loginViewController willMoveToParentViewController:nil];
[loginViewController.view removeFromSuperview];
[loginViewController removeFromParentViewController];

如果我理解正确应该在LoginViewController中触发dealloc但它没有?我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

不完全。删除控制器的视图与释放的控制器无关,只是控制器的视图(由控制器保留,因此不会取消分配。

你有[self addChildViewController:loginViewController];,你在某处存放吗?也许是一个阵列?如果是这样的话,那就是你的泄密。您需要将其从您放置的任何地方删除