2014-12-14 4 views
0

나는 다음과 같은 방법으로 조직 된 게임을 :SKScene 리더

  1. 메뉴 (의 ViewController) - 스토리 보드에서 만든 - 나는 게임 센터에 플레이어를 인증하고 (리더 보드에 갈 수있는 버튼을 제공하는 이) 완벽하게 잘 작동

  2. SKscene이 게임이 손실 될 때 나타나는 GameOverScene라고

  3. 게임 (GameScene)를 시작 SKScene가되어있는의 ViewController.

    -(void)showLeaderboardAndAchievements:(BOOL)shouldShowLeaderboard{ 
    GKGameCenterViewController *gcViewController = [[GKGameCenterViewController alloc] init]; 
    
    gcViewController.gameCenterDelegate = self; 
    
    if (shouldShowLeaderboard) { 
        gcViewController.viewState = GKGameCenterViewControllerStateLeaderboards; 
        gcViewController.leaderboardIdentifier = @"wurst.highscore"; 
    } 
    else{ 
        gcViewController.viewState = GKGameCenterViewControllerStateAchievements; 
    } 
    UIViewController *vc = self.view.window.rootViewController; 
    [vc presentViewController:gcViewController animated:YES completion:nil]; 
    

    }

    :

나는

이 내가 GameOverScene에 사용 된 코드는 리더를 표시하는 리더에 저를 데리고 GameOverScene의 버튼을 갖고 싶어

해당 버튼을 건드렸을 때 아무런 반응이 없을 때이 코드를 실행합니다. 로그 오류 또는 경고 메시지가 나타납니다 :

"경고 :보기가 창 계층 구조에 표시되지 않습니다!"

사이에 차이가있어

왜 MenuViewController에 아닌 SKScenes이 수행되는의 ViewController? 난 당신의 경우에 도움

답변

0

에게 감사 정말 것이다

입니다 GameViewController (그것을 제시하려고 귀하의보기의보기 컨트롤러와 현재 윈도우의. 나는 당신의 장면에서 귀하의보기 컨트롤러에 대리자 방법을 사용하여 이것을 구현하는 것이 더 좋은 생각이라고 생각합니다.보기 컨트롤러의 코드가 리더 보드에 표시되도록 하시겠습니까

+0

미안하지만 어떻게해야합니까? 그것? –

+0

n에 자습서의 일부를 체크 아웃 et, [this this for example] (http://www.alexefish.com/post/522641eb31fa2a0015000002). – Alexander

+0

그래서 GameViewController에 showleaderboard 함수를 추가하고 gameOverScene의 버튼을 사용하여 델리게이트를 통해 실행하도록 지시해야한다고 말하고 있습니까? –