繁体   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