Swift显示游戏中心排行榜

现在我正在努力使我创build的排行榜显示出来。 玩家authentication很好,但是当游戏中心窗口打开时很奇怪。 这是一张图片:

在这里输入图像说明

这里是我用来显示这个图像的代码:

override func touchesBegan(touches: NSSet, withEvent event: UIEvent) { self.showLeaderboard() } func showLeaderboard() { var leaderView = UIViewController() var leaderViewController = GKGameCenterViewController(rootViewController: leaderView) leaderViewController.viewState = GKGameCenterViewControllerState.Leaderboards leaderViewController.leaderboardIdentifier = "High_Score_Board" self.showViewController(leaderViewController, sender: self) //self.presentViewController(leaderViewController, animated: true, completion: nil) } func leaderboardViewControllerDidFinish(controller: GKGameCenterViewController){ controller.dismissViewControllerAnimated(true, completion: nil) } 

所有这一切都在我的GameViewController。 此外,即使这个工程,我将如何访问我的SKScenes这个方法? 谢谢您的帮助!

导入GameKit:

 import GameKit 

确保在你的类中添加GKGameCenterControllerDelegate委托。

 class ViewController: UIViewController, GKGameCenterControllerDelegate { ... } 

该委托需要一个方法,当玩家点击“完成”button时被调用。

 func gameCenterViewControllerDidFinish(gcViewController: GKGameCenterViewController!) { self.dismissViewControllerAnimated(true, completion: nil) } 

这是包含显示排行榜所需的代码的function:

 func showLeaderboard() { 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" self.showViewController(gcViewController, sender: self) self.navigationController?.pushViewController(gcViewController, animated: true) // self.presentViewController(gcViewController, animated: true, completion: nil) } 

您现在可以通过按下一个button来调用showLeaderboard

 @IBAction func buttonShowLeaderboard(sender: AnyObject) { showLeaderboard() }