ios-将一个UIButton连接到2个segues
我有一个UIButton,我正在尝试将它连接到两个Segue。使用哪个序列取决于许多条件 例如,当按下UIButton(标题为“next”)时 如果(条件1),则转到屏幕A。否则转到屏幕B 我相信我的代码是正确的(我已经包括了它),但问题是在故事板视图中,我可以使用segue将一个按钮连接到一个视图控制器。我该如何解决这个问题 这是我正在使用的代码-ios-将一个UIButton连接到2个segues,ios,storyboard,Ios,Storyboard,我有一个UIButton,我正在尝试将它连接到两个Segue。使用哪个序列取决于许多条件 例如,当按下UIButton(标题为“next”)时 如果(条件1),则转到屏幕A。否则转到屏幕B 我相信我的代码是正确的(我已经包括了它),但问题是在故事板视图中,我可以使用segue将一个按钮连接到一个视图控制器。我该如何解决这个问题 这是我正在使用的代码- -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{
if([[segue identifier]isEqualToString:@"nextButtonID"]){
creditCardViewController *cvc = [segue destinationViewController];
}
else if([[segue identifier]isEqualToString:@"next2ButtonID"]){
depositInfoViewController *divc = [segue destinationViewController];
}
}
-(IBAction)nextClicked{
if([accountType isEqualToString:@"patron"]){
[self performSegueWithIdentifier:@"nextButtonID" sender:self];
}
else{
[self performSegueWithIdentifier:@"next2ButtonID" sender:self];
}
}
在情节提要窗口中,从视图底部的视图控制器图标控制拖动,并将其拖动到目标视图控制器,为该段指定一个标识符,然后重复下一段。除非要将某些数据传递给其他视图控制器,否则无需在
prepareforsgue
中提及任何代码
-(IBAction)nextClicked
{
if ([strCheck isEqualToString:@"launch Screen A"])
{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
ScreenA *screenA = (ScreenA *)[storyboard instantiateViewControllerWithIdentifier:@"ScreenA"];
[self.navigationController pushViewController:screenA animated:NO];
}
else
{
UIStoryboard *storyboard=[UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]];
ScreenB *screenB = (ScreenB *)[storyboard instantiateViewControllerWithIdentifier:@"ScreenB"];
[self.navigationController pushViewController:screenB animated:NO];
}
}
我经常这样做。我的方法是制作两个“手动”分段
- 在界面生成器中,按住ctrl键并从视图控制器1拖动到视图控制器2
- 单击IB中的此序列,转到属性并命名其标识符:nextButtonID
- 创建第二个序列,并按照相同的步骤命名它next2ButtonID
我想你的代码应该可以正常工作。我遇到过这样的问题,从一个按钮开始,我有一个segue go,然后,我也尝试调用另一个segue。通过将这些设置为常规的“控制器到控制器”序列,可以在您执行操作时手动调用它们。在Swift 3中: 在情节提要中,按住ctrl键并拖动以创建从
SourceViewController
到DestAViewController
和DestAViewController
的分段,并为每个分段指定一个标识符(例如“ToDestA”和“ToDestB”)。然后:
但它是从viewController执行的,而不是从按钮执行的。如果我理解正确的话,没错。按钮上没有“物理”连接的分段。情节提要只允许我按住ctrl键并从中拖动单个分段。在一个segue将其源作为视图控制器之后,我不能再将该视图控制器作为新segue的源。这是新的吗?
@IBAction func onButton(_ sender: Any) {
if (testForA){
self.performSegue(withIdentifier: "ToDestA", sender: Any?)
} else {
self.performSegue(withIdentifier: "ToDestB", sender: Any?)
}
}