2013-01-14 8 views
7

Ich habe eine einfache Frage, aber ich habe die Dokumentation von Apple durchgesehen und einige Suchvorgänge durchgeführt, und ich kann die Antwort darauf nicht finden.ios: programmatisch nach Game Center-Anmeldung fragen?

Ist es möglich, die Anmeldeseite von Game Center programmgesteuert aufzurufen? Ich habe eine UIButton, die Game Center erfordert, und wenn der Client sich nicht anmeldet, wenn die App geöffnet wird (iOS zieht beim Start die Anmeldeansicht hoch), möchte ich dem Benutzer eine zweite Chance geben, sich anzumelden.

+1

Haben Sie versucht, authenticateHandler-Methode von GKLocalPlayer zu verwenden? – san

Antwort

3

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!

+0

genial, ich habe seit der Veröffentlichung von iOS7 keine der Spielcenter-Sachen angeschaut. Ich werde mir Ihren Vorschlag ansehen, danke, Joseph – anders