2011-08-13 100 views
2

我試圖添加子視圖,然後也刪除以前的視圖。正確刪除視圖,並添加子視圖

這裏是我的代碼如下所示:

HowToPlay *LetsPlay = [[HowToPlay alloc] initWithNibName:@"HowToPlay" bundle:nil]; 

[UIView beginAnimations:nil context:nil]; 
[UIView setAnimationDuration:0.75]; 
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight 
         forView:[self view] 
         cache:YES]; 
[UIView commitAnimations]; 



MainViewController *ma = [[MainViewController alloc]init]; 
[ma.view removeFromSuperview]; 

[self.view addSubview:LetsPlay.view]; 

的Mainviewcontroller認爲,其目前。我希望它消除該視圖,然後繼續添加新視圖LetsPlay。

此代碼運行,並加載一個新的視圖,但是當我從LetsPlay加載另一個視圖時,我可以看到mainviewcontroller仍在其後面運行。我想永久解僱它。

即時通訊還不知道如果即時通訊正確,所以如果我不能請你給我一個如何正確地做到這一點的例子。

謝謝:)

回答

5

你不會在它的正確方法:你要創建MainViewController的實例(以及它的相關的觀點)。然後你試圖從它的超級視圖中刪除這個新創建的視圖(稱之爲instance2),而它甚至沒有被添加到視圖(instance1 has)。這就是爲什麼你仍然看到mainviewcontroller。

取而代之,您需要獲取當前正在運行的/活動的MainViewController。即你應該保持對該視圖控制器的引用。然後,您可以在其視圖上調用removeFromSuperview。

希望這會有所幫助。

+0

好吧,我可以訪問位於應用程序委託中的mainviewcontroller的原始負載。我現在可以從超級視圖中刪除它。現在我該如何加載新視圖? – Jacob

相關問題