为什么我的UIViewController失去了对开放模态ViewController的引用?

时间:2013-11-11 04:34:30

标签: ios objective-c cocoa-touch uiviewcontroller facebook-sdk-3.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将打开自己的用户身份验证网页视图。这可能是负责任的吗?

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

如果用户已成功通过身份验证,则模式登录视图将在父视图控制器上调用上述方法。但是self.presentingViewController是零。因此模态视图永远不会被驳回。有人可以帮忙说出我在这里做错了吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

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

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

这应该是:

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

注意'presentsViewController'和'presentsViewController'之间的区别。