Как открыть GameCenter в твос

Как открыть список лидеров игрового центра в 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)
    }

3 ответа

Решение

У меня также была проблема с экраном "Нет данных", но я наконец решил ее. Это помогло мне открыть список лидеров GameCenter на tvOS:

  1. откройте Assets.xcassets (тот же файл, в котором вы установили значок приложения / экран запуска)
  2. щелкните правой кнопкой мыши на панели с appicon/launchsreen и выберите Game Center -> Новая таблица лидеров Apple TV.
  3. добавить графику для нового списка лидеров
  4. в то время как таблица лидеров выбрана в файле активов на правой боковой панели, найдите поле Идентификатор и поместите туда идентификатор вашей таблицы лидеров.
  5. используйте этот код, чтобы открыть таблицу лидеров:

    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
    gcViewController.gameCenterDelegate = self;
    [self presentViewController:gcViewController animated:YES completion:nil];
    

,viewState и.leaderboardIdentifier недоступен в tvOS, поэтому вы можете открыть контроллер GC с этим кодом, но на странице появится сообщение "Нет данных".

Просто это похоже на работу:

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
    gameCenterController.gameCenterDelegate = self;
    [self presentViewController: gameCenterController animated: YES completion:nil];
}
Другие вопросы по тегам