6

如何在 tvOS 中打开游戏中心排行榜?我已将此代码用于我的 iPhone 游戏,'leaderboardIdentifier' 在 tvOS 上不可用。

我计划在 AppleTV 上使用相同的排行榜(这将是相同的游戏)。

非常感谢您的帮助,斯特凡

    @IBAction func handleGameCenter(sender: UIButton) {
        let gcViewController = GKGameCenterViewController()
        gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
        gcViewController.leaderboardIdentifier = gamePrefix + "Leaderboard"
        gcViewController.gameCenterDelegate = self

        // Show leaderboard
        self.presentViewController(gcViewController, animated: true, completion: nil)
    }

    func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController) {
        gameCenterViewController.dismissViewControllerAnimated(true, completion: nil)
    }
4

3 回答 3

13

我也遇到了“无可用数据”屏幕的问题,但最终解决了。这对我在 tvOS 上打开 gamecenter 排行榜很有用:

  1. 打开 Assets.xcassets(设置应用程序图标/启动屏幕的同一文件)
  2. 使用 appicon/launchsreen 右键单击​​面板,然后选择 Game Center -> New Apple TV Leaderboard
  3. 为新排行榜添加图形
  4. 在右侧面板的资产文件中选择排行榜时,找到标识符字段并将排行榜的标识符放在那里
  5. 使用此代码打开排行榜:

    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
    gcViewController.gameCenterDelegate = self;
    [self presentViewController:gcViewController animated:YES completion:nil];
    
于 2015-10-20T18:07:02.600 回答
1

只是这似乎有效:

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController: gameCenterController animated: YES completion:nil];
}
于 2015-10-07T20:53:07.683 回答
1

. 视图状态和 . leaderboardIdentifier在 tvOS 上不可用,因此您可以使用该代码打开 GC 控制器,但页面会显示“无可用数据”。

于 2015-10-10T06:40:44.030 回答