我两次使用以下方法登录和注册。所以有时候我会崩溃。这是我的代码:

- (void)signIn:(NSDictionary *)params {
    [[PCUtilities sharedUtilities] showActivityControllerWithMessage:nil inController:self];

    [[PCWebServiceManager sharedWebServiceManager] signInWithParameters:params completionHandler:^(id responseObject, NSError *error) {
        self.signInBtn.enabled = YES;
//        [[PCUtilities sharedUtilities] hideActivityIndicator];

        if (error) {
            [self forceLogout];

            [PCUtilities showAlertWithTitle:nil message:error.localizedDescription cancelButtonTitle:@"OK"];
            [[PCUtilities sharedUtilities] hideActivityIndicator];

        }else {
            PCLoginObject *loginObject = (PCLoginObject *)responseObject;
            [self dismissViewControllerAnimated:NO completion:^{
                [self performSelector:@selector(handleSignInResponse:) withObject:loginObject afterDelay:0.2];
            }];
        }
    }];

}

在上面的代码中,我在两个不同的类中两次使用了此方法,因此,如果有可能,可以帮助我将下面的行从dismissviewcontroller更改为presentViewcontroller
[self dismissViewControllerAnimated:NO
                         completion:^{
                             [self performSelector:@selector(handleSignInResponse:)
                                        withObject:loginObject
                                        afterDelay:0.2];
                         }];

我两次使用上述方法。因此,根据崩溃报告,我需要将任何一种方法更改为present view controller。我尝试过但没有成功。

最佳答案

尝试添加此方法,当我收到此警告时,这对我有帮助

// pragma mark-Google登录代表

- (void)signInWillDispatch:(GIDSignIn *)signIn error:(NSError *)error {

}

//呈现一个视图,提示用户使用Google登录
- (void)signIn:(GIDSignIn *)signIn presentViewController:(UIViewController *)viewController
{
    [self presentViewController:viewController animated:YES completion:nil];
}

//关闭“使用Google登录”视图
- (void)signIn:(GIDSignIn *)signIn dismissViewController:(UIViewController *)viewController {
    [self dismissViewControllerAnimated:YES completion:nil];

}

//完成登录
- (void)signIn:(GIDSignIn *)signIn didSignInForUser:(GIDGoogleUser *)user
     withError:(NSError *)error {
//user signed in
//get user data in "user" (GIDGoogleUser object)
}

关于ios - 将dismissVC更改为presentVC,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34837766/

10-13 08:35