如何制作 Segue Pass 数据并且仅在满足某些条件时执行
Posted
技术标签:
【中文标题】如何制作 Segue Pass 数据并且仅在满足某些条件时执行【英文标题】:How to make Segue Pass Data AND ONLY execute if certain criteria is met 【发布时间】:2013-12-18 02:11:35 【问题描述】:我有一个带有按钮的登录页面。当我点击它时,如果并且仅当登录成功时,我想将数据传递给另一个类(使用属性)。
我尝试在 Button 上使用 Segue 来传递数据,但问题是这个 Segue 总是转到下一个视图,即使登录不成功,在这种情况下也不应该。
-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
if ([[segue identifier] isEqualToString:@"gotoMainPage"] )
MainPageController *mpc = [segue destinationViewController];
mpc.username = @"TEST";
如果登录成功,我怎样才能让 Segue 只转到目标控制器?
我知道还有其他方法可以转到另一个 ViewController,例如在按钮上设置 IBAction,当登录成功时,使用 instantiateViewControllerWithIdentifier 和 presentViewController,我也尝试过,但这里的问题是也就是说,它不会将数据传递给另一个类。
感谢您的帮助。谢谢
【问题讨论】:
【参考方案1】:您从控制器(不是按钮)连接 segue,然后在满足您的条件后,在代码中调用 performSegueWithIdentifier。
【讨论】:
【参考方案2】:一旦调用了prepareForSegue:sender:
,就无法阻止segue
的发生。
您应该检查条件并有条件地调用performSegueWithIdentifier
方法。
【讨论】:
好的,所以我不能真正使用 Segue 方法登录。以上是关于如何制作 Segue Pass 数据并且仅在满足某些条件时执行的主要内容,如果未能解决你的问题,请参考以下文章
仅在不切换 viewControllers 的情况下 Segue 动画