有条件地遵循segue
在我的应用程序中,我有一个登录屏幕。 但是,当您将登录按钮中的segue连接到下一个(表格)视图控制器时,无论您输入什么作为登录信息,您始终都可以继续。 如何检查登录信息,然后决定是否执行segue,那么如何有条件地执行segue?
在使用segue时是否可以实现这一目标? 我知道它可以通过编程方式完成,但后来我需要另一个导航控制器,因为我需要一个导航栏..
您可以将登录按钮或其他任何内容连接到某些IBAction代码,确定是否应该继续登录,然后(如果应该)您可以使用performSegueWithIdentifier:
转换到新视图。
我刚刚写了另一篇关于使用这种方法的文章。
在iOS 6上,UIViewController的shouldPerformSegueWithIdentifier:sender:
方法解决了这个问题,无需手动触发segue。
- 从“登录”创建手动segue以说“仪表板”
- 为segue标识符命名,例如“showDashboard”
- 连接IBAction的“下一步”按钮
- 一旦满足所有约束,手动调用带有标识符的segue。
- (IBAction)nextButtonPressed:(id)sender { if([self hasAllRequiredFields]){ [self performSegueWithIdentifier:@“showDashboard”sender:self]; } }
这是迟来的,但最好是setEnabled:不管是什么触发segue直到segue“有效”。 这将你的segue逻辑与你的视图逻辑分开了……