我的应用程序带有一个模式UIView,其中包含一个按钮,允许用户通过Facebook进行身份验证。用户切换到Facebook应用程序后,获得身份验证,然后被发送回我的应用程序,我希望这个模态视图自动被解雇。
如何告诉用户成功通过身份验证然后关闭控制器?
我猜我应该对通知中心做些什么,但我不确定是什么。
答案 0 :(得分:0)
假设你的意思是你提出了一个模态UIViewController
,可以通过以下方式解除它。
[self dismissViewControllerAnimated:YES completion:nil];
答案 1 :(得分:0)
假设您使用的是最后一个Facebook SDK,您需要做的就是在动作成功完成后实施解雇。这是通过将代码放在“-(void)fbDidLogin
委托方法。
答案 2 :(得分:0)
在你身上appDelegate
执行此操作:
- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
return [[yourViewController facebook] handleOpenURL:url];
}
答案 3 :(得分:0)
我在app委托中使用此方法中的通知中心后终于得到了这个。当我们得到一个有效的会话时,它会向模态视图发送一个通知,告诉它解雇。
- (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;
}
}