[英]Switching between view controllers
我有三个视图控制器。 我使用了flipsideproject模板,然后添加了另一个视图控制器。
第一个视图控制器上有一个按钮,可以转到第二个视图控制器。 第二个视图控制器上有一个按钮,可以返回第一个视图。 在第一和第二之间切换时,这些按钮将始终起作用。
第二个和第三个视图控制器的情况相同。 当我尝试在第一到第二到第三然后再回到第一之间进行转换时,它不起作用。
(1-> 2-> 3-> 2-/-> 1)我的画图不好描绘了这种情况。
我将所有后退按钮都连接到后部IBAction,我认为这是问题所在。 然后我做了另一个IBAction,但它没有解决问题。
1st view controller = MainViewController 2nd VC = FlipSideViewController 3rd VC = ChooseAlarmSound
这是用于2-> 1(这是我认为的问题。有时它可以工作)
- (IBAction)done:(id)sender
{
[self.delegate flipsideViewControllerDidFinish:self];
}
这是为了2→3
- (IBAction)chooseSound:(id)sender
{
ChooseAlarmSound *controller = [[[ChooseAlarmSound alloc] initWithNibName:@"ChooseAlarmSound" bundle:nil] autorelease];
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:controller animated:YES];
}
这是为了进行3-> 2
- (IBAction)goBack:(id)sender
{
FlipsideViewController *controller = [[[FlipsideViewController alloc] initWithNibName:@"FlipsideViewController" bundle:nil] autorelease];
controller.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
[self presentModalViewController:controller animated:YES];
}
您使用modalviewcontroller展示了您的第三个VC(从2到3)。 但后来你尝试使用另一个modalVC回到第二个VC(从第3个到第2个)。 这不会让你回到之前的第二个VC的实例。 您需要使用dismissmodalviewcontrolleranimated方法来执行此操作。 在modalviewcontroller类参考上查看Apple网站上的详细信息。
如用户523234所建议,您需要做的就是打电话
[self dismissModalViewControllerAnimated:YES]
在里面
- (IBAction)goBack:(id)sender
第三个视图控制器的方法,而不是你正在做的,它创建第二个视图控制器的另一个实例并呈现它。
现在不起作用的原因是,当您按下第二个视图控制器中的完成按钮时,它将调用
- (IBAction)done:(id)sender
{
[self.delegate flipsideViewControllerDidFinish:self];
}
正在向第二个视图控制器的委托发送消息,在您从3-> 2开始的情况下,您没有设置该委托。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.