1

我有这段代码用于在视图中显示排行榜

。H

UIViewController *presentingViewController;
{

@property (retain) UIViewController *presentingViewController;

.m

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
    [presentingViewController dismissModalViewControllerAnimated:YES];
    [self.presentingViewController.view removeFromSuperview];
}
- (void)leaderboard
{

        GKLeaderboardViewController *lb = [[GKLeaderboardViewController alloc] init];
        if(lb != nil){
            lb.leaderboardDelegate = self;
            presentingViewController = [[UIViewController alloc] init];
            [[[[CCDirector sharedDirector] openGLView] window] addSubview:presentingViewController.view];
            [presentingViewController presentModalViewController:lb animated:YES];

}

一切都很好,它显示了排行榜,当我点击完成按钮时它会消失,但是我再次点击游戏中心按钮,排行榜没有出来,我们也无法浏览其他页面。

我上面的代码有什么问题,这是针对 iphone cocos2d 应用程序的

提前致谢。

4

1 回答 1

1

我在 cocos2D 游戏中使用了这段代码,效果很好,

-(void)displayLeaderboard
{
    GKLeaderboardViewController *leaderboardViewController = [[GKLeaderboardViewController alloc] init];
    leaderboardViewController.leaderboardDelegate = self;

    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];

    [app.navController presentModalViewController:leaderboardViewController animated:YES];
}


#pragma mark GameKit delegate

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

-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
    AppController *app = (AppController*) [[UIApplication sharedApplication] delegate];
    [app.navController dismissModalViewControllerAnimated:YES];
}
于 2012-10-06T13:46:43.810 回答