Manipulando a autenticação do Game Center
De acordo comDocs da apple devemos fazer algo assim para lidar com a autenticação do GC:
- (void) authenticateLocalUser
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
if(localPlayer.authenticated == NO)
{
[localPlayer setAuthenticateHandler:(^(UIViewController* viewcontroller, NSError *error) {
if (!error && viewcontroller)
{
DLog(@"Need to log in");
AppDelegate *appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
[appDelegate.window.rootViewController presentViewController:viewcontroller animated:YES completion:nil];
}
else
{
DLog(@"Success");
}
})];
}
}
E nós recebemos esta informação:
Se o dispositivo não tiver um reprodutor autenticado, o Game Kit passa um controlador de visualização ao seu manipulador autenticado. Quando apresentado, este controlador de exibição exibe a interface do usuário de autenticação. Seu jogo deve pausar outras atividades que exijam interação com o usuário (como o loop do jogo), apresentar esse controlador de visualização e depois retornar. Quando o jogador termina de interagir com ele, o controlador de exibição é descartado automaticamente.
Minha pergunta é: como sabemos quando esse controlador de exibição é descartado e como sabemos se a autenticação foi bem-sucedida ou não?
Obviamente, eu preciso saber se a autenticação funcionou ou não, e eu preciso saber quando retomar o jogo se eu tivesse que pausá-lo porque o controlador mágico de exibição de GC foi apresentado.