ich nehme an, Sie dieses GKLocalPlayer Methode beim Start sind Aufruf: -setAuthenticateHandler:
(> = iOS7) oder -authenticateWithCompletionHandler:
(< = iOS6)
Wenn der Benutzer den Anmeldebildschirm präsentiert storniert, diese Methoden wieder tut nichts fordern, oder vielmehr, der Beendigungshandler wird mit einem Fehler aufgerufen. Der Benutzer muss sich dann über die GameCenter-App oder über die App "Einstellungen" beim GameCenter anmelden. (Während des Tests können Sie sich über die GameCenter-App anmelden und dann abmelden. Danach kann der Bildschirm erneut in Ihrer eigenen App angezeigt werden.) Sie können eine UIAlertView anzeigen, die den Benutzer über die GameCenter-App anmeldet.
Alternativ, und ich weiß nicht, ob dies erlaubt/genehmigbar ist, aber in iOS7 die authenticateHandler
hat einen viewController
Parameter mit dem Anmeldebildschirm. Wenn Sie diesen Anmeldeansicht-Controller in einer Instanzvariablen speichern und der Benutzer die Anmeldung abbricht, können Sie den Anmeldebildschirm später erneut unter Verwendung einer UINavigationController
anzeigen.
Wenn Sie versuchen, den gespeicherten Login-View-Controller mit -presentViewController:animated:completion:
anzuzeigen, funktioniert die Schaltfläche Abbrechen des View-Controllers nicht mehr, aber mit UINavigationController
wird die Schaltfläche Abbrechen ausgeblendet und die Navigation zu Ihrem eigenen View-Controller ermöglicht.
Sie müssen den Anmeldebildschirm auch manuell ausblenden, nachdem sich der Benutzer angemeldet hat, indem Sie auf GKPlayerAuthenticationDidChangeNotificationName
antworten. Es scheint nicht so, als ob die Entwickler dazu in der Lage wären, dies zu tun, also wird es vielleicht keine Genehmigung geben, aber es funktioniert!
Haben Sie versucht, authenticateHandler-Methode von GKLocalPlayer zu verwenden? – san