用户登录我的应用程序后,我使用POST请求将他的用户配置文件发送到我的服务器,如果成功完成,我调用成功块通知我的控制器,里面我想执行一个segue但是segue是没有工作,什么也没发生。
这是我的代码:
RemoteCallManager *rcm = [[RemoteCallManager alloc] init];
if (![[NSUserDefaults standardUserDefaults] boolForKey:IS_FIRST_LAUNCH])
{
// Is first launch
[rcm sendNewUserProfile:self.player andSuccessBlock:^(NSDictionary *result) {
[[Utils sharedInstance] extractAndSaveSessionDataWithResultFromRequest:result];
[(AppDelegate*)[[UIApplication sharedApplication] delegate] setPlayer:self.player];
[(AppDelegate*)[[UIApplication sharedApplication] delegate] archivePlayerObject];
[(AppDelegate*)[[UIApplication sharedApplication] delegate] archiveGameSession];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:IS_FIRST_LAUNCH];
[self performSegueWithIdentifier:@"pushToMenu" sender:self];
} andErrorBlock:^(NSString *description) {
NSLog(@"An error occured : %@", description);
}];
}
else
{
// Is not first launch
[self performSegueWithIdentifier:@"pushToMenu" sender:self];
}
我试图在dispatch_sync中调用segue但没有成功。
感谢您的帮助。
答案 0 :(得分:0)
你是否在dispatch_sync
中切换了主队列?我认为您应该使用dispatch_async(dispatch_get_main_queue() ...
,因为您似乎不需要等待执行调用。
答案 1 :(得分:0)
最后我发现了我的错误,但我不明白为什么。我有一个loadingViewController,它决定要显示的第一个视图控制器是loginViewController还是menuViewController。登录后,loginViewController使用segue推送到menuViewController。
在loadingVC和loginVC之间我有一个模态segue,在loginVC和menuVC之间有一个push segue。如果我将模态更改为push,它可以正常工作。
我不明白我的segue没有用模态执行的原因。如果有人有答案,我会接受:)
感谢您的帮助。