2013-01-14 15 views
7

Ho una domanda semplice, ma ho esaminato la documentazione di Apple e ho fatto delle ricerche e non riesco a trovare la risposta.ios: a livello di codice chiedi l'accesso a Game Center?

È possibile visualizzare in modo programmatico la visualizzazione di accesso di Game Center? Ho un UIButton che richiede Game Center e se il client non effettua l'accesso quando l'app è aperta (iOS apre la vista di accesso al momento del lancio), voglio fornire una seconda possibilità per l'utente di accedere.

+1

Hai provato a utilizzare il metodo authenticateHandler di GKLocalPlayer? – san

risposta

3

sto supponendo che si sta chiamando questo metodo GKLocalPlayer sul lancio: -setAuthenticateHandler: (> = iOS7) o -authenticateWithCompletionHandler: (< = iOS6)

Se l'utente annulla la schermata di login presentato, si chiamano questi metodi ancora una volta non fa nulla, o meglio, il gestore di completamento viene chiamato con un errore. L'utente dovrà quindi accedere a GameCenter tramite l'app GameCenter o tramite l'app Impostazioni. Durante i test, è possibile accedere tramite l'app GameCenter, quindi eseguire il logout, dopodiché è possibile visualizzare nuovamente la schermata nella propria app. È possibile visualizzare un UIAlertView che informa l'utente di accedere tramite l'app GameCenter.

In alternativa, e non so se questo è consentito/approvato, ma in iOS7 lo authenticateHandler ha un parametro viewController che contiene la schermata di accesso. Se si memorizza questo controller di visualizzazione login in una variabile di istanza e l'utente annulla l'accesso, è possibile presentare nuovamente la schermata di accesso in un secondo momento utilizzando uno UINavigationController.

Se si tenta di presentare la vista del regolatore di accesso salvata con -presentViewController:animated:completion: tasto del controller della vista Annulla non funziona più, ma utilizzando una UINavigationController nasconde il pulsante Annulla e consente la navigazione di nuovo al vostro proprio controller della vista.

Avrete anche bisogno di nascondere la schermata di login manualmente dopo che l'utente ha effettuato il login rispondendo a GKPlayerAuthenticationDidChangeNotificationName. Non sembra che gli sviluppatori intendessero farlo, quindi non può approvare, ma funziona!

+0

impressionante, non ho guardato nessuna delle cose del centro di gioco da quando iOS7 è stato rilasciato. Daro 'un'occhiata al tuo suggerimento, grazie Joseph – anders

Problemi correlati