Iphone 通过Facebook身份验证后关闭modal UIView
我的应用程序会弹出一个带有按钮的模式UIView,允许用户通过Facebook进行身份验证。在用户切换到Facebook应用程序,获得身份验证,然后被发送回我的应用程序后,我希望此模式视图自动取消 如何告知用户已成功通过身份验证,然后关闭控制器Iphone 通过Facebook身份验证后关闭modal UIView,iphone,ios,facebook,Iphone,Ios,Facebook,我的应用程序会弹出一个带有按钮的模式UIView,允许用户通过Facebook进行身份验证。在用户切换到Facebook应用程序,获得身份验证,然后被发送回我的应用程序后,我希望此模式视图自动取消 如何告知用户已成功通过身份验证,然后关闭控制器 我猜我应该对通知中心做些什么,但我不确定是什么 假设您的意思是呈现一个模态的UIViewController,则可以使用以下命令将其取消 [self dismissViewControllerAnimated:YES completion:nil];
我猜我应该对通知中心做些什么,但我不确定是什么 假设您的意思是呈现一个模态的
UIViewController
,则可以使用以下命令将其取消
[self dismissViewControllerAnimated:YES completion:nil];
假设您使用的是最后一个Facebook SDK,那么您需要做的就是在操作成功完成后执行解雇。这是通过将代码放置在“
-(void)fbdilogin
委托方法中完成的。在appDelegate
中执行以下操作:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [[yourViewController facebook] handleOpenURL:url];
}
在应用程序委托中使用此方法中的通知中心后,我终于得到了这个消息。当我们获得有效会话时,它会向模式视图发送通知,告诉它关闭
- (void)sessionStateChanged:(FBSession *)session
state:(FBSessionState) state
error:(NSError *)error
{
switch (state) {
case FBSessionStateOpen:
if (!error) {
// We have a valid session
NSLog(@"User session found");
NSDictionary *extraInfo = [NSDictionary dictionaryWithObject:@"FBLoginStatus" forKey:@"FBLogin"];
NSNotification *note = [NSNotification notificationWithName:@"FBLoginNote" object:self userInfo:extraInfo];
[[NSNotificationCenter defaultCenter] postNotification:note];
}
break;
case FBSessionStateClosed:
case FBSessionStateClosedLoginFailed:
[FBSession.activeSession closeAndClearTokenInformation];
break;
default:
break;
}
}
哦,我知道如何关闭窗口。我想问的是如何让应用程序明白它现在已经通过Facebook的身份验证,这样它就可以关闭窗口。@b穆勒如果你不发布你正在使用的代码,我很难说,但我想你会想在你的代码中寻找完成处理程序来接收登录身份验证。嗯,是的使用最新的SDK,我尝试了
-(void)fbdilogin{NSLog(@“FB loggin”);}
但我的日志中没有显示任何内容。在使用Facebook iOS SDK时,连接所有内容有时会很棘手。请确保您已经完成了所有步骤,包括项目info.plist中所需的appDelegate方法和URL方案配置。这如何使模式视图被忽略?我发布了此答案,因为您需要当您在-(void)fbdilogin
中执行NSLog时,没有显示任何内容。最好使用委托方法,而不是通知。