How can I open a game center leaderboard in tvOS? I've used this code for my iPhone games, 'leaderboardIdentifier' aren't available on tvOS.
I've planned to use the same leaderboard on the AppleTV (it will be the same game).
Many thanks for your help,
Stefan
@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)
}
I also had the problem with "No data available" screen but finally solved it. This worked for me to open gamecenter leaderboard on tvOS:
- open Assets.xcassets (same file where you set your app icon/launchscreen)
- right click in the panel with appicon/launchsreen and select Game Center -> New Apple TV Leaderboard
- add graphics for the new leaderboard
- while leaderboard is selected in assets file on the right side panel find Identifier field and put identifier of your leaderboard there
use this code to open the leaderboard:
GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init];
gcViewController.gameCenterDelegate = self;
[self presentViewController:gcViewController animated:YES completion:nil];
Just this seems to work:
GKGameCenterViewController *gameCenterController = [[GKGameCenterViewController alloc] init];
if (gameCenterController != nil)
{
gameCenterController.gameCenterDelegate = self;
[self presentViewController: gameCenterController animated: YES completion:nil];
}
.viewState and .leaderboardIdentifier are not available on tvOS, so you can open the GC controller with that code, but the page will say "No data available".