Iphone iOS如何隐藏先前的子视图

Iphone iOS如何隐藏先前的子视图,iphone,ios,views,subviews,Iphone,Ios,Views,Subviews,我在应用程序中执行一些初始化。首次启动时,我必须提交一份带有“我同意/我不同意”按钮选择的EULA。选择“我同意”后,我会显示一个模式视图,提示输入用户名和密码。这一切都很好。问题是,在验证用户名和密码并取消模式视图之后。我看到屏幕上仍显示EULA视图,而不是应用程序的基本表视图。我在EULA viewcontroller代码中执行以下操作: - (IBAction)didAgree:(id)sender { LoginViewController *lvc=[[[LoginViewCo

我在应用程序中执行一些初始化。首次启动时,我必须提交一份带有“我同意/我不同意”按钮选择的EULA。选择“我同意”后,我会显示一个模式视图,提示输入用户名和密码。这一切都很好。问题是,在验证用户名和密码并取消模式视图之后。我看到屏幕上仍显示EULA视图,而不是应用程序的基本表视图。我在EULA viewcontroller代码中执行以下操作:

- (IBAction)didAgree:(id)sender {
    LoginViewController *lvc=[[[LoginViewController alloc] init] autorelease];
    lvc.modalTransitionStyle=UIModalTransitionStyleCoverVertical;
    [self presentModalViewController:lvc animated:YES];
    [self.view removeFromSuperview];
}
如果我将最后一行(removeFromSuperview)移动到presentModal调用之前,那么登录视图当然不会显示

在登录视图控制器代码中,按下“登录”按钮后,我看到:

[[self parentViewController] dismissModalViewControllerAnimated:YES];
[[self parentViewController].view removeFromSuperview];
如果我使用这段代码运行,模态视图将消失,表视图在消失之前短暂出现,而EULA视图仍保留在屏幕上。如果我注释掉第二条语句,那么我永远看不到表视图


我知道我错过了一些非常明显的东西,但我不知所措,并且已经在这上面停留了很长一段时间。

我认为问题在于:

[self presentModalViewController:lvc animated:YES];
主要是那里的
self
。这意味着您可以从
self
显示登录屏幕:您的EULA ViewController。现在无法删除EULA屏幕


我建议先显示登录屏幕,可能全部变灰或根本不显示任何内容,然后从中以模式显示EULA。

更新:这就成功了,谢谢。我显示了登录屏幕,然后立即显示了EULA屏幕。根据协议,它将离开登录屏幕。保存并登录后,它将离开主屏幕。