我正在创建一个简单的容器 UIViewController
,其中包含一个子视图控制器 UIViewController
。
我是否需要在我的容器 UIViewController
的 dealloc
和 viewDidUnload
方法中发送子视图控制器的 willMoveToParentViewController:
和 removeFromParentViewController
?
我正在使用 ARC
。
我正在创建一个简单的容器 UIViewController
,其中包含一个子视图控制器 UIViewController
。
我是否需要在我的容器 UIViewController
的 dealloc
和 viewDidUnload
方法中发送子视图控制器的 willMoveToParentViewController:
和 removeFromParentViewController
?
我正在使用 ARC
。
- (void) willMoveToParentViewController:(UIViewController *)parent;
{
if (parent == nil) {
NSLog(@"removing my self");
[_childViewController willMoveToParentViewController:nil];
[_childViewController removeFromParentViewController];
[_childViewController.view removeFromSuperview];
_childViewController = nil;
}
}
但是在我的情况下,我调用了这个方法,因为这个父级控制器是另一个父级控制器的子控制器。
// removing the parent from super parent controller
[_parentViewController willMoveToParentViewController:nil];
[_parentViewController removeFromParentViewController];
[_parentViewController.view removeFromSuperview];
_parentViewController = nil;
虽然我不知道你的情况,但希望这能帮助其他可能遇到和我一样问题的人。