1

私のアプリは、ユーザーがFacebookで認証できるようにするボタンを備えたモーダルUIViewを表示します。ユーザーがFacebookアプリに切り替えて認証を受け、アプリに送り返されたら、このモーダルビューを自動的に閉じます。

ユーザーが正常に認証されたことを通知してから、コントローラーを閉じるにはどうすればよいですか?

通知センターで何かするべきだと思いますが、どうなるかわかりません。

4

4 に答える 4

0

あなたがモーダルを提示していることを意味すると仮定すると、UIViewControllerそれは以下で却下することができます。

[self dismissViewControllerAnimated:YES completion:nil];

UIViewControllerクラスリファレンス

于 2012-08-19T06:53:12.400 に答える
0

最後のFacebookSDKを使用していると仮定すると、アクションが正常に終了したら、却下を実装するだけで済みます。これは、コードを「-(void)fbDidLoginデリゲートメソッド」に配置することによって行われます。

于 2012-08-19T06:57:21.953 に答える
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 に答える