2

Gamecenter オーバーレイを閉じた後、オーバーレイが適切に消え、ゲーム ウィンドウが再び表示されますが、タッチに反応しません。私は答えを求めてグーグルを精査し、多くの提案を思いつきましたが、何もうまくいきませんでした. これが私の現在のコードです:

 GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
    if (gameCenterController != nil)
    {
       window = [[UIApplication sharedApplication] keyWindow];
       gameView = [[window subviews] objectAtIndex:0];

       gameCenterController.gameCenterDelegate = self;
       gameCenterController.viewState = GKGameCenterViewControllerStateAchievements;
       tempVC=[[UIViewController alloc] init];

       [[UIApplication sharedApplication].keyWindow addSubview:tempVC.view];
       [tempVC presentViewController: gameCenterController animated: YES completion:nil];
    }



 - (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController
 {
     [tempVC dismissViewControllerAnimated:YES completion:nil];
     [tempVC.view removeFromSuperview];
     [tempVC release];


     [window becomeFirstResponder];
     [window bringSubviewToFront:gameView];
     [window makeKeyAndVisible];
 }
4

1 に答える 1

2

ゲーム センターのビュー コントローラーを解放し、終了アニメーションが完了した後にメイン ウィンドウのファーストレスポンダーを作成する必要があります。正しいコードは次のとおりです。

- (void)gameCenterViewControllerDidFinish:
(GKGameCenterViewController *)gameCenterViewController {

    [tempVC dismissViewControllerAnimated:YES completion: ^(void) {
        [tempVC.view removeFromSuperview];
        [tempVC release];

        [window becomeFirstResponder];
        [window bringSubviewToFront:gameView.view];
        [window makeKeyAndVisible];
     } ];
}
于 2012-11-27T09:02:07.587 に答える