Как открыть 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:
- откройте Assets.xcassets (тот же файл, в котором вы установили значок приложения / экран запуска)
- щелкните правой кнопкой мыши на панели с appicon/launchsreen и выберите Game Center -> Новая таблица лидеров Apple TV.
- добавить графику для нового списка лидеров
- в то время как таблица лидеров выбрана в файле активов на правой боковой панели, найдите поле Идентификатор и поместите туда идентификатор вашей таблицы лидеров.
используйте этот код, чтобы открыть таблицу лидеров:
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];
}