兒童視圖控制器可以「自行解散?」 .....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