2011-04-27 1 views

답변

0

날엔 :(

// Leaderboards 

-(void) showLeaderboard 
{ 
    if (isGameCenterAvailable == NO) 
     return; 

    GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease]; 
    if (leaderboardVC != nil) 
    { 
     leaderboardVC.leaderboardDelegate = self; 
     [self presentViewController:leaderboardVC]; 
    } 
} 
/// 
-(void) leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController 
{ 
    [self dismissModalViewController]; 
    [delegate onLeaderboardViewDismissed]; 
} 

/////// 

-(UIViewController*) getRootViewController 
{ 
    return [UIApplication sharedApplication].keyWindow.rootViewController; 
} 
/// 
-(void) presentViewController:(UIViewController*)vc 
{ 
    UIViewController* rootVC = [self getRootViewController]; 
    [rootVC presentModalViewController:vc animated:YES]; 
} 

//// 
-(void) dismissModalViewController 
{ 
    UIViewController* rootVC = [self getRootViewController]; 
    [rootVC dismissModalViewControllerAnimated:YES]; 
} 

... 관련

처럼 아무것도 없다, 그래서적인 Cocos2D에서 개발하지만 파예드 누군가를 위해 일할 수 왜 이런 방식으로 일하는 것이 진정한 이유인지 설명하십시오. 다행 .... 난 AppDelegate에

[(myAppDelegate*)[[UIApplication sharedApplication] delegate]gameCenter]; 

통해 호출 AppDelegate에에서 제가

-(void)gameCenterLeaderboard 
{ 

    GKLeaderboardViewController* leaderboardVC = [[[GKLeaderboardViewController alloc] init] autorelease]; 
    if (leaderboardVC != nil) { 

     leaderboardVC.leaderboardDelegate = self; 
     [self presentModalViewController: leaderboardVC animated: YES]; 


    } 

} 

다음 방법 인 방법이 rootviewcontroller 방법

-(void)gameCenter 
{ 
    [rootViewController gameCenterLeaderboard]; 
} 

좋아 rootviewcontroller에서 호출 또한 rootviewcontroller에서 재정의하십시오.

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)leaderboardController 
{ 

    [self dismissModalViewControllerAnimated:YES]; 
} 
+0

적인 Cocos2D - 아이폰 - 0.99.5 ... –

+0

내가 내 대답을 편집 ...... PLZ 내가 공연 때 리더 – Rony

+0

@rony ... 지금 그것을 확인하고 알려 내가 클릭 한대로 그것을 해산하고 싶어 ...하지만 그 dissimiss : ( –

0

루트 UIViewController가없는 경우 새 UIViewController를 작성하여 OpenGLView로 설정 한 다음 해당보기 컨트롤러를 사용하여 리더 보드를 모달보기 컨트롤러로 표시하는 것이 좋습니다. 난이 버전을 사용하고

UIViewController *leaderboardViewController = [[UIViewController alloc] init]; 
[leaderboardViewController setView:[[CCDirector sharedDirector] openGLView]]; 

[leaderboardViewController presentModalViewController:leaderboardVC animated:YES]; //leaderboardVC is your GKLeaderboardViewController 
+0

남자 kool이 작동 중입니다. –

+0

이제 리더 보드가 완료되면 클릭을 취소하고 싶습니다.하지만 무시하지 마십시오. ( –

+0

leaderboardViewControllerDidFinish 대리자 메소드를 구현하고 dismissModalViewControllerAnimated : 위의 샘플에서 leaderboardViewController를 표시 한 뷰 컨트롤러에서 (나중에 참조 할 수 있도록 헤더에 선언하십시오.) – mbehan