【问题标题】:Cocos2d, iOS 6.1, GameCenter Crash When Showing Leader-boardCocos2d、iOS 6.1、GameCenter 在显示排行榜时崩溃
【发布时间】:2013-05-20 03:42:52
【问题描述】:

我正在尝试在我的 Cocos2d 游戏中显示排行榜。下面的代码在 iOS 5.0 上可以正常工作。但是在 6.1 上它会崩溃并显示以下错误消息。在此先感谢您的任何建议。

* 由于未捕获的异常“UIViewControllerHierarchyInconsistency”而终止应用程序,原因:“一个视图一次最多只能与一个视图控制器关联!视图 > 与 关联。在将此视图与 关联之前清除此关联。'

- (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];
}

【问题讨论】:

    标签: iphone ios cocos2d-iphone ios6.1


    【解决方案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];
    }
    

    【讨论】:

    • 如果我还在使用 Cocos 和 AppDelegate 而不是 AppController,你知道需要修改什么吗?谢谢
    • cocos2d版本低于2.0?然后使用 AppDelegate 和 viewController
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    • 2013-06-03
    • 2011-05-27
    相关资源
    最近更新 更多