ios-将一个UIButton连接到2个segues

ios-将一个UIButton连接到2个segues,ios,storyboard,Ios,Storyboard,我有一个UIButton,我正在尝试将它连接到两个Segue。使用哪个序列取决于许多条件 例如,当按下UIButton(标题为“next”)时 如果(条件1),则转到屏幕A。否则转到屏幕B 我相信我的代码是正确的(我已经包括了它),但问题是在故事板视图中,我可以使用segue将一个按钮连接到一个视图控制器。我该如何解决这个问题 这是我正在使用的代码- -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{

我有一个UIButton,我正在尝试将它连接到两个Segue。使用哪个序列取决于许多条件

例如,当按下UIButton(标题为“next”)时

如果(条件1),则转到屏幕A。否则转到屏幕B

我相信我的代码是正确的(我已经包括了它),但问题是在故事板视图中,我可以使用segue将一个按钮连接到一个视图控制器。我该如何解决这个问题

这是我正在使用的代码-

-(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?)
        }
    }