我正在使用一个基于选项卡的应用程序,该应用程序显示一个名为“overview”的presentModalViewController,其上有2个按钮。
为了调用它,我在app delegate中使用以下代码:
Overview *overview = [[Overview alloc] initWithNibName:@"Overview" bundle:nil];
[self.tabBarController presentModalViewController:overview animated:YES];
当概述显示时,它有一个被点击的按钮,我使用以下代码:
-(IBAction) btnLoginPressed{
[self dismissModalViewControllerAnimated:YES]; //get rid of view
Login *login = [[Login alloc] initWithNibName:@"Login" bundle:nil];
[self.tabBarController presentModalViewController:login animated:YES];
[login release];
}
然而登录prsentModalViewController永远不会出现。有人可以解释为什么以及我可以做些什么来展示它?
由于
答案 0 :(得分:2)
当您呈现模态视图控制器时,可以从视图中当前的视图控制器执行此操作。
假设您在Overview.m中进行了第二次视图控制器的模态显示,请将您的代码更改为以下内容:
-(IBAction) btnLoginPressed {
Login *login = [[Login alloc] initWithNibName:@"Login" bundle:nil];
[self presentModalViewController:login animated:YES];
[login release];
}
您不需要首先关闭概述,事实上您不应该因为动画不能相互协作而工作。
当您最终解除登录时(或者您想要的深度),您可以根据需要发送dismissModalViewController:animated:
。要返回标签栏的控制器,请使用:
[self.tabBarController dismissModalViewController:animated]
这将超出您的问题的范围和我必须回答的时间,但您应该花些时间并真正研究有关实施View Controllers的文档。我绝对建议遵循Apple的代码风格指南作为一个建议,使您的代码更具可读性(例如overviewViewController
vs overview
)。很明显,你只是在学习,所以坚持下去。