ユーザーが現在認証されているかどうかを確認するView Controllerがあります。そうでない場合は、ログイン ビュー コントローラーをモーダルに表示します。
-(void)showLoginView{
UIStoryboard *storyBoard = [self storyboard];
LoginViewController *loginViewController = [storyBoard instantiateViewControllerWithIdentifier:@"LoginViewController"];
loginViewController.parentController = self;
[self presentViewController:loginViewController animated:NO completion:nil];
}
ユーザーが認証されたら、モーダルログインビューコントローラーを閉じたいのですが、何らかの理由で親ビューコントローラーがモーダルコントローラーへの参照を失いました。ログイン ビュー コントローラーは、Facebook SDK を使用してセッションを開くプロセスを開始します。Facebook は、ユーザー認証のために独自の Web ビューを開きます。これは責任を負うことができますか?
-(void)loginSuccess{
[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}
ユーザーが正常に認証されると、モーダル ログイン ビューは親ビュー コントローラーで上記のメソッドを呼び出します。ただし、self.presentingViewController は nil です。したがって、モーダル ビューが閉じられることはありません。誰かが私がここで間違っていることを教えてもらえますか?
ありがとう!