2013-01-14 1 views
7

간단한 질문이 있지만 Apple의 설명서를 살펴본 결과 일부 검색을했는데 답변을 찾을 수 없습니다.ios : 프로그래밍 방식으로 Game Center 로그인을 요청 하시겠습니까?

는 프로그래밍 관점에서 로그인 게임 센터를 끌어 할 수 있습니까? 나는 사용자가 로그인하기 위해 두 번째 기회를 제공하고자, 나는 게임 센터를 필요로하는 UIButton 있고, 앱을 열 때 클라이언트가 로그인하지 않는 경우 (아이폰 OS는 로그인 출시에서보기를 가져옵니다).

+1

는 GKLocalPlayer의 authenticateHandler 방법을 사용하여 시도 적이 있습니까? – san

답변

3

난 당신이 GKLocalPlayer 발사에 대한 방법을 호출하고 있으리라 믿고있어 : 사용자가 제시된 로그인 화면을 취소하면 다시 이러한 메서드를 호출, -setAuthenticateHandler: (> = iOS7에) 또는 -authenticateWithCompletionHandler: (< = iOS6의)

을 아무것도하지 않는다, 오히려 완료 핸들러가 오류와 함께 호출됩니다. 사용자는 GameCenter 앱 또는 설정 앱을 통해 GameCenter에 로그인해야합니다. (테스트하는 동안 GameCenter 앱을 통해 로그인 한 다음 로그 아웃하면 사용자의 앱에서 화면을 다시 표시 할 수 있습니다.) GameCenter 앱을 통해 로그인하도록 사용자에게 알리는 UIAlertView를 표시 할 수 있습니다.

허용되거나 승인 가능한지 여부는 알 수 없지만 iOS7에서는 authenticateHandlerviewController 매개 변수에 로그인 화면이 있습니다. 이 로그인보기 컨트롤러를 인스턴스 변수에 저장하고 사용자가 로그인을 취소하면 나중에 UINavigationController을 사용하여 다시 로그인 화면을 표시 할 수 있습니다.

-presentViewController:animated:completion:으로 저장된 로그인보기 컨트롤러를 표시하려고하면보기 컨트롤러의 취소 단추가 더 이상 작동하지 않지만 UINavigationController을 사용하면 취소 단추가 숨겨지고 사용자 고유의보기 컨트롤러로 다시 돌아갈 수 있습니다.

사용자가 GKPlayerAuthenticationDidChangeNotificationName에 응답하여 로그인 한 후에 수동으로 로그인 화면을 숨겨야합니다. 개발자가이 작업을 수행 할 수 있도록 의도 된 것처럼 보이지 않으므로 승인을 통과하지 못할 수도 있지만 작동합니다!

+0

굉장해, iOS7이 출시 된 이래로 나는 게임 센터 물건을 보지 못했다. 나는 당신의 제안을 살펴볼 것입니다. Joseph에게 감사드립니다. – anders