Мы представляем экран входа в GameCenter при запуске игры. В конце игры мы показываем кнопку GameCenter, которая позволяет пользователям просматривать свои достижения и списки лидеров игры. Если они отклонили исходный экран и не вошли в систему, как мы можем снова отобразить экран входа? Вот код, который мы используем, но он не работает.Показать имя GameCenter позже, если пользователь уйдет с экрана входа в систему в начале игры?
override func viewDidLoad() {
super.viewDidLoad()
// Configure view
let skView = view as! SKView
skView.multipleTouchEnabled = false
//skView.showsNodeCount = true
//skView.showsFPS = true
// Show intro scene
let introScene = IntroScene(size: skView.bounds.size, controller: self)
introScene.scaleMode = .AspectFill
skView.presentScene(introScene)
// Authenticate GameCenter player
authenticateGameCenterPlayer()
}
private func authenticateGameCenterPlayer() {
var localPlayer = GKLocalPlayer.localPlayer()
localPlayer.authenticateHandler = {(viewController : UIViewController!, error : NSError!) -> Void in
if ((viewController) != nil) {
self.presentViewController(viewController, animated: true, completion: nil)
} else {
println((GKLocalPlayer.localPlayer().authenticated))
}
}
}
func showLeaderboard() {
// User logged into GameCenter?
if (!GKLocalPlayer.localPlayer().authenticated) {
println("Local player not authenticated")
authenticateGameCenterPlayer()
return
}
// If here, user is authenticated so present leaderboards
var gcViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
gcViewController.leaderboardIdentifier = "highScoresLeaderboard"
self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
}
Я не верю, что это возможно, так как GameKit обрабатывает это. Проверьте этот ответ: http://stackoverflow.com/a/21132075/2108547 –