iOS:让segue等待登录成功

问题描述 投票:12回答:3

我正在使用XCode 4.2的故事板功能设计一个iOS应用程序。该应用程序有一个登录屏幕,其中包含用户名和密码,并有一个登录按钮。按下登录按钮会触发另一个视图控制器的推送序列。但是,我希望seque等到登录成功后再继续下一个视图控制器。

我知道prepareForSegue:sender:但是我的问题是:登录调用是异步的。因此我无法在那里执行登录。

这有什么办法吗?我可以在故事板中创建一个仅在我想要时触发的segue(而不是单击按钮时)吗?

ios ios5 uistoryboard segue
3个回答
38
投票

好的,我已经弄清楚了。我已经定义了从UIButton到下一个UIViewController的segue。如以这种方式定义的,没有办法有条件地执行segue。

我没有把按钮放在按钮上,而是从第一个UIViewController到另一个UIViewController做了一个segue。这定义了segue,但不与它相关联。从那里我可以简单地调用performSegueWithIdentifier:sender:当我想要执行segue时(在我的情况下是异步任务完成时)。

这对我来说的主要优点是IB保持其结构。

非常感谢@cli_hlt指出我正确的方向(+1)。


5
投票

我不知道IB是否有办法执行这样的行动(尽管我强烈怀疑),所以我建议使用

- (void)performSegueWithIdentifier:(NSString *)identifier sender:(id)sender

当您的异步登录信号成功时,在视图控制器上。


1
投票

您还可以在UIStoryBoard的实例上调用instantiateViewControllerWithIdentifier。这将返回一个视图控制器引用到故事板中的任何点。从那里,您可以随心所欲地呈现它,它将获得故事板的流程。

© www.soinside.com 2019 - 2024. All rights reserved.