儿童视图控制器可以“自行解散?” .....removeFromParentViewController - 之后你需要零吗?
你有一个视图控制器“RedMessage”。你有一个普通的强大财产...
@property(strong)RedMessage * red;
您对您目前的VC的顶部添加它( “模态”)...
self.red = (RedMessage *)[self.storyboard
instantiateViewControllerWithIdentifier:@"RedMessageID"];
self.red.view.frame = self.view.frame;
[self.view addSubview:self.red.view];
[self addChildViewController:self.red];
[self.red didMoveToParentViewController:self];
若要后来摆脱它,这样做
[self.red willMoveToParentViewController:nil];
[self.red.view removeFromSuperview];
[self.red removeFromParentViewController];
但事实上,你需要这样做?
[rm willMoveToParentViewController:nil];
[rm.view removeFromSuperview];
[rm removeFromParentViewController];
rm = nil;
您是否需要“= nil;” ?
注意,这个问题是至关重要的,因为:如果你没有到零,你可以再做新的视图控制器内以下......
-(void)dismissMyselfCompletely
{
[self willMoveToParentViewController:nil];
[self.view removeFromSuperview];
[self removeFromParentViewController];
}
这是非常方便的。
总之,如果你在新的顶部视图控制器内部做到这一点 - 它会“工作”,它会释放VC吗?
当removeFromParentViewController发生时,父VC是否明白它可以释放self.red?
恩惠用于授权引用。 – Fattie 2014-10-16 06:50:37
对不起,提供自己的答案,但我们做了广泛的测试,并找到答案中给出的结果...希望它可以帮助别人! – Fattie 2014-10-22 09:32:27