簡體   English   中英

正確刪除視圖,並添加子視圖

[英]Properly remove view, and add subview

我試圖添加一個子視圖,然后還刪除以前的視圖。

這是我的代碼的樣子:

    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 是它當前打開的視圖。 我希望它消除該視圖,然后是 go 並添加新視圖 LetsPlay。

這段代碼運行,它加載了一個新視圖,但是當我從 LetsPlay 加載另一個視圖時,我可以看到 mainviewcontroller 仍在它后面運行。 我想永久關閉它。

我什至不確定我是否正確地進行此操作,所以如果我不是,請給我一個如何正確執行此操作的示例。

謝謝:)

你的方法不對:你正在創建 MainViewController 的一個實例(以及它的關聯視圖)。 然后,您嘗試從其父視圖中刪除這個新創建的視圖(稱為 instance2),而它甚至還沒有被添加到視圖中(instance1 有)。 這就是您仍然看到 mainviewcontroller 的原因。

相反,您需要掌握當前正在運行/活動的 MainViewController。 即,您應該保留該視圖 controller 的參考。 然后你可以在它的視圖上調用 removeFromSuperview 。

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM