2017-09-26 4 views
1

J'ai des problèmes pour fermer ma vue de gamecenter. Il s'affiche correctement et affiche les classements corrects, mais ne rejette pas gamecenter et revient au jeu lorsque le bouton "terminé" est enfoncé. J'ai la fonction gameCenterViewControllerDidFinish() nécessaire, donc je ne sais pas pourquoi cela ne fonctionnerait pas. Juste besoin d'être pointé dans la bonne direction. Voici le code que j'utilise pour appeler gamecenter.Pourquoi gameCenterViewControllerDidFinish n'est-il pas appelé?

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

Ajouter 'GKGameCenterControllerDelegate' à votre classe' MainMenu': 'classe MainMenu: SKScene, SKPhysicsContactDelegate, UIGestureRecognizerDelegate, GKGameCenterControllerDelegate {' – Chris

+0

Je savais que je manqué quelque chose de petit. Je vous remercie! Cela a résolu le problème! –

Répondre

0

Je pense que self as? GKGameCenterControllerDelegate est nul parce que vous ne déclarez pas en fait que vous mettre en œuvre GKGameCenterControllerDelegate

Ajouter à la liste, puis retirer la partie as? ... de cette ligne. Vous n'en avez pas besoin lorsque vous le déclarez correctement.

+0

C'est exactement ce que je devais faire. Merci pour l'aide! –