【问题标题】:childViewController not getting deallocated after removing from parentViewController从 parentViewController 删除后 childViewController 没有被释放
【发布时间】:2012-12-04 13:55:16
【问题描述】:

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

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 但它不会?我错过了什么吗?

【问题讨论】:

  • 你的问题解决了吗?
  • @jbouaziz 我不记得这个问题是如何解决的,但是我确实对此得出了结论

标签: uiview uiviewcontroller automatic-ref-counting ios5


【解决方案1】:

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

您有[self addChildViewController:loginViewController];,您是否将其存储在某个地方?也许是一个数组?如果是这种情况,那就是你的泄漏。您需要从放置它的任何位置删除它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多