gpt4 book ai didi

ios - 当我的容器 UIViewController 被解除分配或卸载时,我必须清理我的子 UIViewControllers 吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:45:04 24 4
gpt4 key购买 nike

我正在创建一个简单的容器UIViewController,其中包含一个子UIViewController

我是否需要在我的容器 UIViewControllerdealloc 中发送子 willMoveToParentViewController:removeFromParentViewController 并且viewDidUnload 方法?

我正在使用 ARC

最佳答案

这可能晚了,但我遇到了同样的问题。我使用 NSLog 进行了测试,并没有在子 Controller 上调用 dealloc 方法。

在我的例子中,我有一个父 Controller 和一个子 Controller ,但这个父 Controller 也是另一个 super 父 Controller 的子 Controller 。

所以,我的解决方案是实现 willMoveToParentViewController 并移除那里的 child 。

- (void) willMoveToParentViewController:(UIViewController *)parent;
{
if (parent == nil) {
NSLog(@"removing my self");
[_childViewController willMoveToParentViewController:nil];
[_childViewController removeFromParentViewController];
[_childViewController.view removeFromSuperview];
_childViewController = nil;
}
}

但是,在我的例子中,我调用了这个方法,因为这个父 Controller 是另一个父 Controller 的子 Controller 。

// removing the parent from super parent controller
[_parentViewController willMoveToParentViewController:nil];
[_parentViewController removeFromParentViewController];
[_parentViewController.view removeFromSuperview];
_parentViewController = nil;

虽然我不知道你的情况,但希望这能帮助其他可能与我有同样问题的人。

关于ios - 当我的容器 UIViewController 被解除分配或卸载时,我必须清理我的子 UIViewControllers 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11004793/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com