2014-04-12 3 views
0

메인 메뉴 클래스에서 리더 보드를 표시하려고하는데 오류가 발생합니다. 여기에 내 코드,Spritekit의 게임 센터 리더 보드

- (void) showLeaderboard 
{ 
GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; 
if (leaderboardController != nil) 
{ 
    leaderboardController.leaderboardDelegate = self; 
    [self presentModalViewController: leaderboardController animated: YES]; 
} 
} 
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 

입니다 그리고 난 '어떤 인터페이스 presentModalViewController 선언하지 : 애니메이션'점점 오전에는 인터페이스 dismissModalViewControllerAnimated 없습니다 선언한다 ':. 누군가 이걸 할 수있는 올바른 방법을 보여줄 수 있습니까? 나는이 물건에 대한 많은 경험이 없습니다.

답변

1

현재보기/닫기보기 컨트롤러 메서드가보기 컨트롤러와 그 하위 클래스에 존재하며 SKNode의 하위 클래스를 수신기로 호출하려고하기 때문입니다. 이 문제를 해결하려면 뷰 컨트롤러 하위 클래스에 대한 참조를 가져 와서이 메시지를 해당 뷰로 보내야합니다. 가장 쉬운 방법은 노드의 장면의 창에있는 루트보기 컨트롤러를 사용하는 것입니다.

- (void) showLeaderboard 
{ 
    GKLeaderboardViewController *leaderboardController = [[GKLeaderboardViewController alloc] init]; 
    if (leaderboardController != nil) 
    { 
     leaderboardController.leaderboardDelegate = self; 
     [self.scene.view.window.rootViewController presentModalViewController: leaderboardController animated: YES]; 
    } 
} 
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewControl*)viewController 
{ 
    [self.scene.view.window.rootViewController dismissModalViewControllerAnimated:YES]; 
} 
+0

감사합니다. Game Center를 지금 사용해보세요. – user3299383

관련 문제