2015-09-24 3 views
6

Как открыть таблицу лидеров игрового центра в tvOS? Я использовал этот код для своих iPhone-игр, «leaderboardIdentifier» недоступен на tvOS.Как открыть GameCenter в 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) 
    } 

ответ

13

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

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

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

Спасибо за разделение этого решения! – Reinaldo

+0

Это работает! Большое спасибо за вашу помощь. – Stefan

+0

Отличный ответ :) – Siddharth

1

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

GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init]; 
if (gameCenterController != nil) 
{ 
    gameCenterController.gameCenterDelegate = self; 
    [self presentViewController: gameCenterController animated: YES completion:nil]; 
} 
1

. видState и. leaderboardIdentifier недоступны на tvOS, поэтому вы можете открыть контроллер GC с этим кодом, но на странице будет указано «Нет данных».