在使用Facebook进行身份验证后,关闭模式UIView

时间:2012-08-19 06:44:17

标签: iphone ios facebook

我的应用程序带有一个模式UIView,其中包含一个按钮,允许用户通过Facebook进行身份验证。用户切换到Facebook应用程序后,获得身份验证,然后被发送回我的应用程序,我希望这个模态视图自动被解雇。

如何告诉用户成功通过身份验证然后关闭控制器?

我猜我应该对通知中心做些什么,但我不确定是什么。

4 个答案:

答案 0 :(得分:0)

假设你的意思是你提出了一个模态UIViewController,可以通过以下方式解除它。

[self dismissViewControllerAnimated:YES completion:nil];

UIViewController class reference

答案 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;
    }
}