我正在使用Parse的Anypic进行实验,我不断收到这三个错误:
Presenting view controllers on detached view controllers is discouraged <PAPWelcomeViewController>
然后去
Unbalanced calls to begin/end appearance transitions for <UINavigationController>
最后
Login failure. FB Access Token or user ID does not exist
我按照教程中的说明设置了所有内容。它过去工作得很好,我没有得到这些错误,但是当我回到项目一段时间后,我得到了这些错误。
他们正在尝试通过Facebook登录应用程序时发生这种情况。我选择登录,输入我的详细信息,点击登录然后没有任何反应,它只是回到&#34;登录Facebook&#34;按钮。
感谢您的帮助!
答案 0 :(得分:1)
您应该尝试将handleFacebookSession更改为如下所示:
- (void)handleFacebookSession {
if ([PFUser currentUser]) {
if (self.delegate && [self.delegate respondsToSelector:@selector(logInViewControllerDidLogUserIn:)]) {
[self.delegate performSelector:@selector(logInViewControllerDidLogUserIn:) withObject:[PFUser currentUser]];
}
return;
}
NSArray *permissionsArray = @[ @"public_profile",
@"user_friends",
@"email"];
self.hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];
// Login PFUser using Facebook
[PFFacebookUtils logInWithPermissions:permissionsArray block:^(PFUser *user, NSError *error) {
if (!user) {
NSString *errorMessage = nil;
if (!error) {
NSLog(@"Uh oh. The user cancelled the Facebook login.");
errorMessage = @"Uh oh. The user cancelled the Facebook login.";
} else {
NSLog(@"Uh oh. An error occurred: %@", error);
errorMessage = [error localizedDescription];
}
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Log In Error"
message:errorMessage
delegate:nil
cancelButtonTitle:nil
otherButtonTitles:@"Dismiss", nil];
[alert show];
} else {
if (user.isNew) {
NSLog(@"User with facebook signed up and logged in!");
} else {
NSLog(@"User with facebook logged in!");
}
if (!error) {
[self.hud removeFromSuperview];
if (self.delegate) {
if ([self.delegate respondsToSelector:@selector(logInViewControllerDidLogUserIn:)]) {
[self.delegate performSelector:@selector(logInViewControllerDidLogUserIn:) withObject:user];
}
}
} else {
[self cancelLogIn:error];
}
}
}];}
解决方案取自here