2013-01-14 13 views
7

Mam proste pytanie, ale przejrzałem dokumentację Apple i zrobiłem kilka wyszukiwania i nie mogę znaleźć odpowiedzi na to.ios: programowo poprosić o logowanie do Game Center?

Czy można programowo wywołać widok logowania do Centrum gier? Mam numer UIButton, który wymaga Centrum gier, a jeśli klient nie loguje się po otwarciu aplikacji (system iOS uruchamia widok logowania przy uruchomieniu), chcę zapewnić drugą szansę użytkownikowi na zalogowanie się.

+1

Czy próbowałeś użyć metody authenticateHandler GKLocalPlayer? – san

Odpowiedz

3

jestem przy założeniu, że wywołanie tej metody GKLocalPlayer na premiery: -setAuthenticateHandler: (> = iOS7) lub -authenticateWithCompletionHandler: (< = iOS6)

Jeśli użytkownik anuluje ekran logowania podane, nazywając tych metod znowu nic nie robi, lub raczej procedura obsługi zakończenia jest wywoływana z błędem. Użytkownik będzie musiał następnie zalogować się do GameCenter za pośrednictwem aplikacji GameCenter lub aplikacji Ustawienia. (Podczas testów możesz zalogować się za pomocą aplikacji GameCenter, a następnie wylogować się, a następnie ponownie wyświetlić ekran w swojej aplikacji.) Możesz pokazać UIAlertView, aby użytkownik mógł się zalogować za pomocą aplikacji GameCenter.

Alternatywnie, i nie wiem, czy jest to dozwolone/dozwolone, ale w iOS7 authenticateHandler ma parametr viewController przytrzymujący ekran logowania. Jeśli przechowujesz ten kontroler widoku logowania w zmiennej instancji i użytkownik anuluje logowanie, możesz później ponownie wyświetlić ekran logowania, używając UINavigationController.

Jeśli spróbujesz wyświetlić zapisany kontroler widoku logowania za pomocą -presentViewController:animated:completion:, przycisk Anuluj kontrolera widoku przestaje działać, ale użycie przycisku UINavigationController ukrywa przycisk Anuluj i umożliwia nawigację z powrotem do kontrolera widoku.

Będziesz musiał również ukryć ekran logowania ręcznie po zalogowaniu się użytkownika, odpowiadając na GKPlayerAuthenticationDidChangeNotificationName. Wygląda na to, że programiści nie byli w stanie tego zrobić, więc może nie zatwierdzić, ale działa!

+0

Niesamowite, nie oglądałem żadnych rzeczy z centrum gier od czasu premiery iOS7. Spojrzę na twoją sugestię, dziękuję Joseph – anders

Powiązane problemy