使用swift在ios 8 app中显示Game Center挑战而不是排行榜

时间:2014-09-10 08:53:29

标签: ios swift ios8 game-center game-center-leaderboard

我正在使用swift编程开发ios 8应用程序。 我正在尝试使用gamecentercontroller显示游戏中心排行榜。但每次它都显示挑战状态而不是排行榜。这是我用过的代码。

func showLeaderboard()
{
        var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
        gcViewController.leaderboardIdentifier = myLeaderboardIdentifier

        gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards
        gcViewController.gameCenterDelegate = self
        let vc = self.view?.window?.rootViewController
        vc?.presentViewController(gcViewController, animated: true, completion: nil)
}

当我尝试使用默认状态时

gcViewController.viewState = GKGameCenterViewControllerState.Dafault

然后它显示一个空白的白色视图(甚至没有挑战)

只是一个疯狂的怀疑"它与沙盒模式有什么关系)

有人请帮忙。长期坚持下去。

3 个答案:

答案 0 :(得分:1)

当我向Apple写信时,它自动开始了。 似乎是苹果公司的一个问题。

答案 1 :(得分:0)

尝试使用以下代码。请务必将YourLeaderboardID替换为您的实际排行榜ID。您的代码看起来与我的完全相同,但可能代码行的顺序是错误的。

func showLeaderboard() {

    var gcViewController: GKGameCenterViewController = GKGameCenterViewController()
    gcViewController.gameCenterDelegate = self

    gcViewController.viewState = GKGameCenterViewControllerState.Leaderboards

    gcViewController.leaderboardIdentifier = "YourLeaderboardID"
    self.showViewController(gcViewController, sender: self)
    self.presentViewController(gcViewController, animated: true, completion: nil)
}

答案 2 :(得分:0)

它发生在我身上,我最终来到这里。 我不知道它是否对某人有用,但在我的情况下,原因是我在飞机模式下离线在获得认证后。