ios: программно запрашивать вход в Game Center?
У меня простой вопрос, но я просмотрел документацию Apple и провел поиск, и не могу найти ответ на него.
Можно ли программно увеличить вид входа в Game Center? у меня есть UIButton
для этого требуется Game Center, и если клиент не выполняет вход при открытии приложения (iOS запускает представление входа при запуске), я хочу предоставить пользователю второй шанс для входа.
1 ответ
Я предполагаю, что вы вызываете этот метод GKLocalPlayer при запуске: -setAuthenticateHandler:
(> = iOS7) или -authenticateWithCompletionHandler:
(<= iOS6)
Если пользователь отменяет представленный экран входа в систему, повторный вызов этих методов ничего не делает, или, скорее, обработчик завершения вызывается с ошибкой. Затем пользователю необходимо будет войти в GameCenter через приложение GameCenter или через приложение "Настройки". (Во время тестирования вы можете войти через приложение GameCenter, а затем выйти из системы. После этого экран снова может быть представлен в вашем собственном приложении.) Вы можете отобразить UIAlertView, в котором пользователю предлагается войти через приложение GameCenter.
В качестве альтернативы, и я не знаю, разрешено ли это / одобрено, но в iOS7 authenticateHandler
имеет viewController
параметр, содержащий экран входа в систему. Если вы храните этот контроллер вида входа в систему в переменной экземпляра и пользователь отменяет вход в систему, вы можете снова представить экран входа в систему позже, используя UINavigationController
,
Если вы попытаетесь представить сохраненный логин вид контроллера -presentViewController:animated:completion:
кнопка Cancel контроллера больше не работает, но использует UINavigationController
скрывает кнопку "Отмена" и позволяет вернуться к вашему собственному контроллеру представления.
Вам также нужно будет скрыть экран входа в систему вручную после входа пользователя в систему, отвечая на GKPlayerAuthenticationDidChangeNotificationName
, Похоже, что разработчики не должны были это делать, поэтому он может не пройти одобрение, но это работает!