1

我的应用程序显示了一个带有按钮的模态 UIView,以允许用户通过 Facebook 进行身份验证。在用户切换到 Facebook 应用程序,通过身份验证,然后被发送回我的应用程序后,我希望这个模式视图自动关闭。

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

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

4

4 回答 4

0

在你appDelegate这样做:

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    return [[yourViewController facebook] handleOpenURL:url];
}
于 2012-08-19T09:49:10.573 回答
0

在应用程序委托的这种方法中使用通知中心后,我终于得到了这个。当我们得到一个有效的会话时,它会向模态视图发送一个通知,告诉它关闭。

- (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;
    }
}
于 2012-08-19T15:18:20.560 回答
0

假设您的意思是您正在呈现一个模态UIViewController,它可以通过以下方式被解雇。

[self dismissViewControllerAnimated:YES completion:nil];

UIViewController 类参考

于 2012-08-19T06:53:12.400 回答
0

假设您使用的是最后一个 Facebook SDK,您需要做的就是在操作成功完成后实现解除。这是通过将代码放在“-(void)fbDidLogin委托方法中来完成的。

于 2012-08-19T06:57:21.953 回答