有条件地遵循segue

时间:2011-10-23 14:25:38

标签: objective-c ios cocoa-touch storyboard

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

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

4 个答案:

答案 0 :(得分:20)

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

我刚刚撰写了另一篇关于使用此方法的文章here

答案 1 :(得分:10)

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

答案 2 :(得分:3)

  1. 从“登录”创建手动segue以说“dashboard”
  2. 为segue标识符命名,例如“showDashboard”
  3. 连接IBAction的“下一步”按钮
  4. 一旦满足所有约束条件,就手动调用带有标识符的segue。
  5. - (IBAction)nextButtonPressed:(id)sender
    {
        if ([self hasAllRequiredFields]) {
            [self performSegueWithIdentifier:@"showDashboard" sender:self];
        } 
    }
    

答案 3 :(得分:2)

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