ハンドラーを設定すると、さまざまな状況で呼び出されます。これらの呼び出しでは、viewController パラメータは nil にすることも、実際にはインスタンス GKHostedAuthenticateViewController にすることもできます。
viewController が nil でないかどうかを確認する必要があります。その場合は、他のビュー コントローラーと同じように表示できます。
ここに、Game Center プログラミング ガイドのサンプル コードがあります。
- (void) authenticateLocalPlayer
{
GKLocalPlayer *localPlayer = [GKLocalPlayer localPlayer];
localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error){
if (viewController != nil)
{
[self showAuthenticationDialogWhenReasonable: viewController
}
else if (localPlayer.isAuthenticated)
{
[self authenticatedPlayer: localPlayer];
}
else
{
[self disableGameCenter];
}
}];
}
GKLocalPlayer Class ReferenceとGame Center Programming Guideを確認してください。