有条件地遵循segue

在我的应用程序中,我有一个登录屏幕。 但是,当您将登录按钮中的segue连接到下一个(表格)视图控制器时,无论您输入什么作为登录信息,您始终都可以继续。 如何检查登录信息,然后决定是否执行segue,那么如何有条件地执行segue?

在使用segue时是否可以实现这一目标? 我知道它可以通过编程方式完成,但后来我需要另一个导航控制器,因为我需要一个导航栏..

您可以将登录按钮或其他任何内容连接到某些IBAction代码,确定是否应该继续登录,然后(如果应该)您可以使用performSegueWithIdentifier:转换到新视图。

我刚刚写了另一篇关于使用这种方法的文章。

在iOS 6上,UIViewController的shouldPerformSegueWithIdentifier:sender:方法解决了这个问题,无需手动触发segue。

  1. 从“登录”创建手动segue以说“仪表板”
  2. 为segue标识符命名,例如“showDashboard”
  3. 连接IBAction的“下一步”按钮
  4. 一旦满足所有约束,手动调用带有标识符的segue。

 - (IBAction)nextButtonPressed:(id)sender
 {
     if([self hasAllRequiredFields]){
         [self performSegueWithIdentifier:@“showDashboard”sender:self];
     } 
 }

这是迟来的,但最好是setEnabled:不管是什么触发segue直到segue“有效”。 这将你的segue逻辑与你的视图逻辑分开了……