spritekit中的游戏中心排行榜

时间:2014-04-12 18:11:46

标签: ios7 sprite-kit game-center

我正在尝试从我的主菜单类中展示我的排行榜,但我遇到了一些错误。这是我的代码,

- (void) showLeaderboard
{
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
if (leaderboardController != nil)
{
    leaderboardController.leaderboardDelegate = self;
    [self presentModalViewController: leaderboardController animated: YES];
}
}
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController
{
    [self dismissModalViewControllerAnimated:YES];
}

我得到'没有接口声明presentModalViewController:动画''没有接口声明dismissModalViewControllerAnimated:。有人能告诉我正确的方法,我对这些东西没有多少经验。

1 个答案:

答案 0 :(得分:1)

这是因为视图控制器及其子类上存在当前/解除视图控制器方法,并且您尝试使用SKNode的子类作为接收器来调用它们。为了解决这个问题,您需要获取对视图控制器子类的引用并将这些消息发送给它。最简单的方法可能是通过节点的视图窗口的根视图控制器。

- (void) showLeaderboard
{
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init];
    if (leaderboardController != nil)
    {
        leaderboardController.leaderboardDelegate = self;
        [self.scene.view.window.rootViewController presentModalViewController: leaderboardController animated: YES];
    }
}
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController
{
    [self.scene.view.window.rootViewController dismissModalViewControllerAnimated:YES];
}