如果我们有一个你有三个 ViewController 的情况。黄色,绿色和白色之一。
你可以通过黄色和绿色的一个来得到白色的。请参阅图片以获取更多说明:
当我从黄色转为白色时,我准备转场并将 NSUinteger jimmy_hendrix 值设置为 0;
当我从绿色转为白色时,我准备转场并将 NSUinteger jimmy_hendrix 值设置为 1;
在白色的 VC 中,我创建了 IBAction 并将一个 BACK 按钮连接到它。在那里,根据我想要解除我在白色 VC 中结束的转场的价值。
这是我使用的代码:
- (IBAction)goBack:(UIButton *)sender {
switch (_jimmy_hendrix) {
case 0:
[self performSegueWithIdentifier:@"fromYellowToWhite" sender:self];
break;
case 1:
[self performSegueWithIdentifier:@"fromGreenToWhite" sender:self];
break;
}
}
但是,我得到一个例外:
'Receiver (<WhiteVC: 0x15d8c850>) has no segue with identifier 'fromSuperTraenerToSuperTraenerQuestions
为了清楚起见,我从来没有 ctrl + 从 BACK 按钮拖动退出然后选择 unwind segue 方法,因为我想要执行两个展开,基于我使用的 VC 和哪个 segue。
有什么解决方案?如何首先回到我用来到达目的地的任何 ViewvController?
重要提示:我知道我可以制作新的 segues,从白色到黄色和绿色并调用它们。但我不想那样……我不想制作新的转场,我想以编程方式展开现有的转场。
编辑:我忘了提到确实我用绿色和黄色 VC 制作了展开方法
-(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue {
}
-(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue {
}