Objective c 有条件地跟随一段

Objective c 有条件地跟随一段,objective-c,ios,cocoa-touch,storyboard,Objective C,Ios,Cocoa Touch,Storyboard,在我的应用程序中,我有一个登录屏幕。然而,当从登录按钮连接到下一个(表)视图控制器时,无论您键入什么作为登录信息,您始终能够继续。如何检查登录信息,然后决定是否执行segue,那么如何有条件地执行segue 在使用segue时是否可以实现这一点?我知道这可以通过编程实现,但我需要另一个导航控制器,因为我需要一个导航栏。您可以将登录按钮或任何东西连接到某个iAction代码,决定是否应该继续登录,然后(如果应该)可以使用performsguewithidentifier:转换到新视图 我刚刚写了另

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


在使用segue时是否可以实现这一点?我知道这可以通过编程实现,但我需要另一个导航控制器,因为我需要一个导航栏。

您可以将登录按钮或任何东西连接到某个iAction代码,决定是否应该继续登录,然后(如果应该)可以使用
performsguewithidentifier:
转换到新视图


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

这是迟来的,但在我看来,最好设置为Enabled:在segue“有效”之前,没有任何东西会触发segue。在iOS 6上,UIViewController的
应使用Identifier:sender:
方法解决此问题,而无需手动触发segues

  • 创建一个从“登录”到“仪表板”的手动序列
  • 为序列标识符提供名称,例如“showDashboard”
  • 连接iAction的“下一步”按钮
  • 满足所有约束后,使用标识符手动调用segue
  • 
    -(iAction)下一个按钮按下:(id)发送方
    {
    如果([self hasAllRequiredFields]){
    [self-PerformsgueWithIdentifier:@“showDashboard”发件人:self];
    } 
    }
    

    顺便说一句,您也可以在不使用导航栏的情况下使用导航控制器。如果登录数据无效,这不会阻止您执行segue。不,您应该在执行操作之前检查登录是否有效。如果它无效,则不使用performsguewithidentifier。如果您下载了示例-您会在代码中看到,在推送下一个视图之前可以在其中执行检查。使用PerformsgueWithIdentifier意味着segue存在。。通过创建此序列(将其从IB中的按钮拖动到view controller),您是否将PerformsgueWithIdentifier放入代码中并不重要。。单击按钮后,将执行segue。。你的代码与我的问题无关。我真的需要用一段代码或其他东西来保持segue。您可以将segue从视图控制器拖到新视图,而不是从按钮拖到新视图,这样就可以连接多个按钮,而不会出现关于多次使用segue的Xcode警告。尝试将segue从视图1中的状态栏连接到第二个视图,然后对其余视图进行编码。同样,我提供的示例显示了这种连接,而没有将其挂接到按钮上。 - (IBAction)nextButtonPressed:(id)sender { if ([self hasAllRequiredFields]) { [self performSegueWithIdentifier:@"showDashboard" sender:self]; } }