Как работает функция google plus call back после аутентификации в IOS

Я сделал интеграцию с Google +, и я сделал простой вход и показ друзей Google на столе. Но проблема в том, что до того, как я загружу друзей, я хочу проверить, зарегистрирован ли пользователь, поэтому в моем приложении friendsdisplayViewController я сделал что-то вроде этого

if ([GPPSignIn sharedInstance].authentication)
 {
 NSLog(@"Status is authenticated, fetching friends!!");
 [self fetchGooglePlusFriends:kGTLPlusCollectionVisible];
 }
 else
 {

 [[GPPSignIn sharedInstance]authenticate];

 }

Я определил функцию обратного вызова на первом контроллере signupview и один под этим

-(void)finishedWithAuth:(GTMOAuth2Authentication *)auth error:(NSError *)error
{
//code
}

Но всякий раз, когда выполняется случай else, он всегда вызывает функцию обратного вызова, определенную на signupviewcontroller, а не ту, которую я определил в friendsdisplayViewController, поэтому я не могу отобразить список, но могу проверить подлинность.

Мне просто интересно, как сделан вызов этой функции обратного вызова google (finishedWithAuth).Почему он вызвал тот, который был зарегистрирован, а не в формате friendsdisplay, хотя аутентификация была вызвана из друзей.

1 ответ

Я понял, что проблема возникла из-за делегата, который нужно поставить на каждый контроллер, который вы вызываете, GPPSignInDelegate. И законченныйWithAuth затем будет вызван из ViewController, который вы пытаетесь называть его иначе, он вызовет законченныйWithAuth в ViewController, который стоит в верхней части стека.

licensed under cc by-sa 3.0 with attribution.