0

我有一个视图控制器,它检查用户当前是否经过身份验证。如果不是,我会以模态方式呈现登录视图控制器。

-(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 为零。所以模态视图永远不会被解雇。有人可以帮忙告诉我在这里做错了什么吗?

谢谢!

4

1 回答 1

0

喂!我很笨。我正在尝试这个:

-(void)loginSuccess{
    [self.presentingViewController dismissViewControllerAnimated:YES completion:nil];
}

这应该是:

-(void)loginSuccess{
    [self.presentedViewController dismissViewControllerAnimated:YES completion:nil];
}

注意“presentingViewController”和“presentedViewController”之间的区别。

于 2013-11-11T04:43:17.483 回答