I'm working on a game, and I'm looking for help or the code to display a GameCenter leaderboard in my app when a user clicks a button. I have no clue where to start as all of the other answers seem to be for Obj-C, thanks!
EDIT:
The Below answer worked perfectly, but for those wondering how to do this within SpriteKit, simply add the below methods to the GameViewController
and add a Notification Center Observer
NSNotificationCenter.defaultCenter().addObserver(self, selector: "showLeaderboard", name: "showLeaderboard", object: nil)
In your SKScene
Class, simply call to that observer.
NSNotificationCenter.defaultCenter().postNotificationName("showLeaderboard", object: nil)
Just to help out those wondering!
Include the GKGameCenterControllerDelegate
protocol within your class.
class ViewController: UIViewController, GKGameCenterControllerDelegate
This method dismisses the Game Center view when "Done" is tapped:
func gameCenterViewControllerDidFinish(gcViewController: GKGameCenterViewController!) {
self.dismissViewControllerAnimated(true, completion: nil)
}
This function includes the code that is needed to display the leaderboard:
func showLeaderboard() {
// declare the Game Center viewController
var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
// Remember to replace "Best Score" with your Leaderboard ID (which you have created in iTunes Connect)
gcViewController.leaderboardIdentifier = "Best_Score"
// Finally present the Game Center ViewController
self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
self.presentViewController(gcViewController, animated: true, completion: nil)
}
You can now trigger the function showLeaderboard
by pressing a UIButton
:
@IBAction func buttonShowLeaderboard(sender: AnyObject) {
showLeaderboard()
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With