【发布时间】:2014-08-07 13:19:23
【问题描述】:
我创建了一个推送序列并将标识符命名为“CustomIdentifier”之类的名称。用户注册成功后, shouldPerformSegueWithIdentifier 执行并推送到另一个视图控制器。如何让推送动作等到用户注册块返回成功后再执行推送动作?我现在正在做的事情如下所示,但无论注册是否成功,都会执行推送。对此有什么更好的解决方案?顺便说一句,我知道我可以创建一个 IBAction,但我使用的是 RBStoryboardLink,所以它必须是一个 push segue。并且 IBAction 不适用于 RBStoryboardLink。
- (BOOL)shouldPerformSegueWithIdentifier:(NSString *)identifier sender:(id)sender
{
__block BOOL should;
if ([identifier isEqualToString:@"Question"]) {
AVUser *newUser = [AVUser user];
newUser.username = self.usernameField.text;
newUser.password = self.passwordField.text;
newUser.email = self.emailField.text;
[newUser signUpInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
should = YES;
} else {
should = NO;
}
}];
}
return should;
}
【问题讨论】:
-
@Rushabh 似乎没有公认的答案。
-
如果不阻塞主线程,您就无法做到这一点。您可能需要在调用您的方法之前收集该信息。
-
@holex 是正确的。执行
signUpInBackgroundWithBlock,如果成功则只执行segue。
标签: ios objective-c uistoryboard uistoryboardsegue