2014-10-29 3 views
1

После показа игрового центра он не увольняется после нажатия. Вот мой код, чтобы показать его:Увольнение GameCenter View в Swift

let gameCenterController = GKGameCenterViewController() 

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

Что мне не хватает?

ответ

0

Есть некоторые хорошие Q & A на этом в Ray Wenderlich. См. Последний метод в приведенном ниже коде. Источник:

http://www.raywenderlich.com/forums/viewtopic.php?f=2&t=18671

class GameViewController: UIViewController, GKGameCenterControllerDelegate { 

    var skView: SKView! 
    var scene: GameScene! 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     // View 
     //------ 
     skView = self.view as SKView  
     skView.ignoresSiblingOrder = true 

     scene = GameScene.sceneWithSize(skView.bounds.size) 
     scene.scaleMode = .AspectFill 
     scene.view?.window?.rootViewController = self 
     skView.presentScene(scene) 

     authenticateLocalPlayer() 
    } 


    override func touchesEnded(touches: NSSet, withEvent event: UIEvent) { 
     var touch:UITouch = touches.anyObject() as UITouch 
     var location:CGPoint = touch.locationInNode(scene) 

     if (scene.gameCenterRect.contains(location) && GKLocalPlayer.localPlayer().authenticated) { 
      self.openGameCenter() 
     } 
    } 


func openGameCenter() { 
     var gameCenter = GKGameCenterViewController() 
     gameCenter.gameCenterDelegate = self 
     self.presentViewController(gameCenter, animated: true, completion: nil) 
    } 


    func authenticateLocalPlayer(){ 
     var localPlayer = GKLocalPlayer() 
     localPlayer.authenticateHandler = {(viewController, error) -> Void in 
      if ((viewController) != nil) { 
       self.presentViewController(viewController, animated: true, completion: nil) 
      }else{ 
       println("(GameCenter) Player authenticated: \(GKLocalPlayer.localPlayer().authenticated)")     
      } 

     } 

    } 


    func gameCenterViewControllerDidFinish(gameCenterViewController: GKGameCenterViewController!) { 
     gameCenterViewController.dismissViewControllerAnimated(true, completion: nil) 
    } 

[...] // standard methods 

} 
Смежные вопросы