正确删除视图,并添加子视图

Jac*_*cob 2 view objective-c subview ios

我试图添加一个子视图,然后还删除以前的视图.

这是我的代码的样子:

    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];
Run Code Online (Sandbox Code Playgroud)

Mainviewcontroller是其当前的视图.我希望它解除该视图,然后继续添加新视图LetsPlay.

此代码运行,并且它加载一个新视图,但是当我从LetsPlay加载另一个视图时,我可以看到mainviewcontroller仍然在它后面运行.我想永久地解雇它.

我甚至不确定我是否正确地进行此操作,所以如果我不能,请给我一个如何正确做到的例子.

谢谢 :)

Oli*_*Oli 5

你没有采用正确的方式:你正在创建一个MainViewController 的实例(以及它的相关视图).然后,您尝试从其超级视图中删除这个新创建的视图(称之为instance2),而它甚至尚未添加到视图中(instance1具有).这就是你仍然看到mainviewcontroller的原因.

相反,您需要保持当前正在运行/活动的MainViewController.即你应该坚持该视图控制器的参考.然后,您可以在其视图上调用removeFromSuperview.

希望这可以帮助.