显示排行榜会导致应用崩溃,因为不支持 showViewController
Showing leaderboard crashes app because showViewController isn't supported
在 iOS 7 中显示 Game Center 排行榜的正确方法是什么?下面的代码在 showViewController
上崩溃,因为它只支持 iOS 8。其他 Stack Overflow 帖子建议对 iOS 7 使用 presentViewController
,但这只会显示一个空白的排行榜。
func showLeaderboards() {
// User logged into GameCenter?
if (!GKLocalPlayer.localPlayer().authenticated) {
println("Local player not authenticated")
// Show message
return
}
// If here, user authenticated. Present leaderboards.
var gcViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
gcViewController.leaderboardIdentifier = HighScoresLeaderboardKey
self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
}
如果您的应用面向 iOS 7.x,您应该使用以下代码:
self.presentViewController(gcViewController, animated: true, completion: nil)
而不是:
self.showViewController(gcViewController, sender: self)
在 iOS 7 中显示 Game Center 排行榜的正确方法是什么?下面的代码在 showViewController
上崩溃,因为它只支持 iOS 8。其他 Stack Overflow 帖子建议对 iOS 7 使用 presentViewController
,但这只会显示一个空白的排行榜。
func showLeaderboards() {
// User logged into GameCenter?
if (!GKLocalPlayer.localPlayer().authenticated) {
println("Local player not authenticated")
// Show message
return
}
// If here, user authenticated. Present leaderboards.
var gcViewController = GKGameCenterViewController()
gcViewController.gameCenterDelegate = self
gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
gcViewController.leaderboardIdentifier = HighScoresLeaderboardKey
self.showViewController(gcViewController, sender: self)
self.navigationController?.pushViewController(gcViewController, animated: true)
}
如果您的应用面向 iOS 7.x,您应该使用以下代码:
self.presentViewController(gcViewController, animated: true, completion: nil)
而不是:
self.showViewController(gcViewController, sender: self)