我两次使用以下方法登录和注册。所以有时候我会崩溃。这是我的代码:
- (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/