2012-09-22 30 views
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]; 
} 

回答

2

您需要釋放遊戲中心視圖控制器,並在完成解散動畫之後使主窗口成爲第一響應者。這裏是正確的代碼:

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

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

     [window becomeFirstResponder]; 
     [window bringSubviewToFront:gameView.view]; 
     [window makeKeyAndVisible]; 
    } ]; 
}