如何使Segue Pass数据只在符合某些条件时才执行

我有一个button的login页面。 当我点击它,IF和ONLY如果login成功,我想传递数据到另一个类(使用属性)。

我曾尝试在button上使用Segue来传递数据,但问题是这个Segue总是进入下一个View,即使login失败,在这种情况下,它也不应该。

-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([[segue identifier] isEqualToString:@"gotoMainPage"] ) { MainPageController *mpc = [segue destinationViewController]; mpc.username = @"TEST"; } 

如果login成功,我怎么才能让Segue只进入destinationController?

我知道还有其他方法去另一个ViewController,如设置一个IBAction的button,当login成功,使用instantiateViewControllerWithIdentifier和presentViewController,我也试过这些,但这里的问题是,它不会将数据传递给另一个类。

帮助表示赞赏。 谢谢

从控制器(不是button)连接segue,然后在满足条件之后,在代码中调用performSegueWithIdentifier。

一旦prepareForSegue:sender:已经被调用,你不能停止继续发生。

您应该检查条件并有条件地调用performSegueWithIdentifier方法。