2013-05-20 4 views
0

Я пытаюсь показать Лидерскую доску в моей игре Cocos2d. Код ниже работает правильно на iOS 5.0. Однако в 6.1 он выходит из строя с сообщением об ошибке ниже. Спасибо заранее за любые предложения.Cocos2d, iOS 6.1, GameCenter Crash при показе лидера

* Завершение приложения из-за неотображенного исключения «UIViewControllerHierarchyInconsistency», причина: «Просмотр может быть связан только с одним контроллером представления одновременно! View>. Удалите эту связь, прежде чем связывать это представление с. '

- (void)showLeaderboard:(id)sender 
{ 
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; 
if (leaderboardController != NULL) 
{ 

    leaderboardViewController = [[UIViewController alloc] init]; 
    leaderboardController.category = self.currentLeaderBoard; 
    leaderboardController.leaderboardDelegate = self; 

    [leaderboardViewController setView:[[CCDirector sharedDirector] openGLView]]; 
    [leaderboardViewController presentViewController:leaderboardController animated:YES completion:nil]; 

} 
} 

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController 
{ 
[leaderboardViewController dismissViewControllerAnimated:YES completion:nil]; 
[viewController release]; 
} 

ответ

1

Попробуйте остановить анимацию openGL и вернуться назад.

-(void)showLeaderboard 
{ 
     [[CCDirector sharedDirector] stopAnimation]; 

     GKLeaderboardViewController *leaderboardViewController = [[[GKLeaderboardViewController alloc] init] autorelease]; 
     leaderboardViewController.leaderboardDelegate = self; 

     AppController *app=(AppController*)[UIApplication sharedApplication].delegate; 
     [app.navController presentModalViewController:leaderboardViewController animated:YES]; 
} 


-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController 
{ 
    AppController *app=(AppController*)[UIApplication sharedApplication].delegate; 
    [app.navController dismissModalViewControllerAnimated:YES]; 

    [[CCDirector sharedDirector] startAnimation]; 
} 
+0

Если я все еще использую Cocos с AppDelegate, а не AppController, вы знаете, что нужно будет изменить? Спасибо – PCoder123

+0

cocos2d версия менее 2.0? затем используйте AppDelegate и viewController – Guru

+0

Спасибо! Это работало! – PCoder123

 Смежные вопросы

  • Нет связанных вопросов^_^