如何以编程方式放松到2个不同的VC
如果我们有一个你有三个ViewController的情况。 黄,绿,白一个。
你可以通过黄色和绿色的到达白色的。 请参阅图片以获取更多解释:
当我从黄色变为白色时,我准备继续并将NSUinteger的jimmy_hendrix值设置为0;
当我从绿色变为白色时,我准备继续并将NSUinteger的jimmy_hendrix值设置为1;
在白色的VC里面,我做了IBAction并连接了一个BACKbutton。 在那里,根据价值我想放松我最终在白色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 +从BACKbutton退出,然后selectunwind segue方法,因为有两个unwind我想执行,根据哪个VC和哪个segue我用。
这是什么解决scheme? 如何继续回到我第一次得到我的destionation的任何ViewvController?
重要:我知道我可以做出新的赛段,从白色到黄色和绿色,并给他们打电话。 但是我不想要这样做。我不想做新的事情,我想以编程的方式放松现有的事情。
编辑:我忘了提及,我确实在绿色和黄色VC做了放松的方法
-(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue { } -(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue { }
你需要创buildunwind segues。 在YellowVC中创build一个方法
-(IBAction)fromYellowToWhite:(UIStoryboardSegue *)segue { }
并在GreenVC中创build一个方法
-(IBAction)fromGreenToWhite:(UIStoryboardSegue *)segue { }
然后从白色的UIViewController
实例拖动到白色场景中的“退出”图标,并从fromYellowToWhite
到白色中select。 重复这fromGreenToWhite:
并从fromGreenToWhite:
selectfromGreenToWhite:
最后,select新创build的展开Segues,并将标识设置为“fromYellowToWhite”和“fromGreenToWhite” – 他们应该有一个“fromYellowToWhite:”和“fromGreenToWhite:”的“动作”
您不必从后退button拖动到“退出”,但是您可以从视图控制器本身拖动到“退出”。 这样做两次。 一个是退出到黄色的VC,一个是退出到绿色的VC。
现在在国际局你会有两个新的赛段,你可以把它们命名为“WhiteToYellowUnwindSegue”等。
现在执行这些你可以…
[self performSegueWithIdentifier:@"WhiteToYellowUnwindSegue" sender:self];
等等…