3

最近、新しい iOS 6 メソッドを使用して iOS 6 でローカル ユーザーを認証しようとしましたが、認証ハンドラーで返されます。

localPlayer.authenticateHandler = ^(UIViewController *viewController, NSError *error)

このView Controllerを表示するにはどうすればよいですか? (参考までに、ローカル プレーヤーの認証が完了すると、GC は自動的にウィンドウを閉じます)

プロジェクトでストーリーボードを使用しています。

ありがとう!

4

1 に答える 1

0

ハンドラーを設定すると、さまざまな状況で呼び出されます。これらの呼び出しでは、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 ReferenceGame Center Programming Guideを確認してください。

于 2012-09-27T15:34:42.570 に答える