2016-05-02 22 views
0

私は自分のアプリにGameCenterにログインしようとしています。認証プレーヤーの場合、 'presentViewController'のメンバーはありません

Value of type 'GameScene' has no member 'presentViewController' when trying to present the view controller.

マイ認証機能

func authPlayer(){ 
    let localPlayer = GKLocalPlayer.localPlayer() 

    localPlayer.authenticateHandler = { 
     (view, error) in 

     if view != nil { 
      self.presentViewController(view!, animated: true, completion: nil) 
     } 
     else { 
      print(GKLocalPlayer.localPlayer().authenticated) 
     } 
    } 
} 
+1

'presentViewController'はどのクラスに属していますか?投稿されたコードにはどのようなクラスがありますか?問題を参照してください? – rmaddy

+0

GKGameCenterControllerをクラスにインポートすることができません。 'タイプ' GameScene 'がプロトコル' GKGameCenterControllerDelegate''に準拠していません。 – tda

答えて

0

self.presentViewControllerselfはのUIViewControllerのサブクラスである場合にのみ機能します。私はエラーを取得します。また

viewはUIViewのとないのUIViewControllerであれば、その後:viewが悪いという名前で、本当にのUIViewControllerのサブクラスであるされていない限り

self.presentViewController(view!, animated: true, completion: nil) 

はどちらか動作しません。これはGameKit固有のものではありません。

App -> Key Window -> Root View Controller -> Child View Controller -> Root View 

多くの子ビューコントローラを持つことができますが、それぞれには子が1つしかありません。すべてのUIViewControllerには1つまたは複数のUIViewがあり、その種類と性質に応じて1つまたは複数の子ビューを持つことができます。

+0

最初の文章では、 "child"を "subclass"に置き換える必要があります。 – rmaddy

+0

これはどうすれば修正できますか? – tda

+0

http://stackoverflow.com/questions/20291922/handling-game-center-authenticationには、GKLocalPlayer認証が適切に実装されています。 –

関連する問題