我尝试添加子视图,然后删除上一个视图。
这是我的代码:
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仍然在它后面运行。我想永久地解雇它。
我甚至不确定我是否正确地进行此操作,所以如果我不能,请给我一个如何正确执行此操作的示例。
谢谢:)
答案 0 :(得分:5)
你没有采用正确的方式:你正在创建一个MainViewController的 new 实例(以及它的相关视图)。然后,您尝试从其超级视图中删除这个新创建的视图(称之为instance2),而它甚至尚未添加到视图中(instance1具有)。这就是你仍然看到mainviewcontroller的原因。
相反,您需要保持当前正在运行/活动的MainViewController。即你应该坚持该视图控制器的参考。然后你可以在它的视图上调用removeFromSuperview。
希望这会有所帮助。