显示排行榜崩溃应用程序,因为不支持 showViewController

Posted

技术标签:

【中文标题】显示排行榜崩溃应用程序,因为不支持 showViewController【英文标题】:Showing leaderboard crashes app because showViewController isn't supported 【发布时间】:2015-06-03 02:33:23 【问题描述】:

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)

【问题讨论】:

【参考方案1】:

如果您的应用面向 iOS 7.x,则应使用以下代码:

self.presentViewController(gcViewController, animated: true, completion: nil)

代替:

self.showViewController(gcViewController, sender: self)

【讨论】:

感谢您的帮助,但 presentViewController 显示一个空的排行榜(即没有排行榜选项卡,没有挑战选项卡)。如果我们在 iOS 8 设备上使用 showViewController,它会显示一个填充的排行榜。我们还需要对 presentViewController 做些什么以便它显示一些东西吗? 我是GameKit的初学者,很抱歉我不能帮你解决“显示一个空的排行榜” 谢谢,但是您知道为什么我们在 iOS 8 设备上使用 presentViewController 而不是 showViewController 时结果会不同吗? 实际上现在似乎可以工作了,谢谢!不知道为什么一开始它不起作用。

以上是关于显示排行榜崩溃应用程序,因为不支持 showViewController的主要内容,如果未能解决你的问题,请参考以下文章

如何显示排行榜?

Firebase crashlytics 不显示崩溃

MacOS GameKit 排行榜无法加载应用程序“不支持排行榜”错误

未登录游戏中心时应用程序崩溃

在 SpriteKit 中显示 Game Center 排行榜

如果我在游戏圈布局屏幕上按主页按钮,统一游戏会崩溃