2017-09-26 119 views
1

我无法解雇我的gamecenter视图。它正确显示并显示正确的排行榜,但不会在按下“完成”按钮时关闭游戏中心并返回游戏。我有必要的gameCenterViewControllerDidFinish()函数,所以我不知道为什么它不起作用。只需要指出正确的方向。以下是我用来调用gamecenter的代码。为什么gameCenterViewControllerDidFinish不被调用?

class MainMenu: SKScene, SKPhysicsContactDelegate, 
UIGestureRecognizerDelegate{ 

func showLeader() { 
    let viewControllerVar = self.view?.window?.rootViewController 
    let gKGCViewController = GKGameCenterViewController() 
    gKGCViewController.gameCenterDelegate = self as? 
    GKGameCenterControllerDelegate 
    viewControllerVar?.present(gKGCViewController, animated: true, 
    completion: nil) 

} 
func gameCenterViewControllerDidFinish(_ gameCenterViewController: 
    GKGameCenterViewController) { 
    gameCenterViewController.dismiss(animated: true, completion: nil) 
} 
+1

添加'GKGameCenterControllerDelegate'你'MainMenu'类:'类的MainMenu:SKScene,SKPhysicsContactDelegate, UIGestureRecognizerDelegate,GKGameCenterControllerDelegate {' – Chris

+0

我知道我错过了什么小。谢谢!这解决了问题! –

回答

0

我觉得self as? GKGameCenterControllerDelegate是零,因为你实际上并没有宣布要实现GKGameCenterControllerDelegate

将它添加到列表中,然后删除as? ...部分来自该行。当你正确地声明它时你不需要它。

+0

这正是我需要做的。谢谢您的帮助! –

相关问题