2012-05-11 3 views
0

Я использую этот код, чтобы показать лидер доски:Game Center Посмотреть на Ipad (СЕРЫЙ ЭКРАН)

-(void)viewscores:(SPEvent*)event 

    { 
    tempVC = [[UIViewController alloc] init]; 


    GKLeaderboardViewController* leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease]; 
    if (leaderboardController != nil) 
    { 
     leaderboardController.leaderboardDelegate = self; 
     UIView *sparrowView = self.stage.nativeView; // take care that self.stage != nil! 
     [sparrowView addSubview:tempVC.view]; 
     //[tempVC.view addSubview:leaderboardController.view]; 
     [tempVC presentModalViewController:leaderboardController animated:YES]; 
    } 
} 

- (void)animationDidStop:(NSString*)animationID finished:(BOOL)finished context:(void *)context 
{ 
    for(UIView *subview in [tempVC.view subviews]) { 
     [subview removeFromSuperview]; 
    } 
    [tempVC.view.superview removeFromSuperview]; 
    [tempVC release]; 
} 

-(void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController*)viewController 
{ 
    CGRect frame = viewController.view.frame; 
    // [tempVC dismissModalViewControllerAnimated:YES]; 
    [UIView beginAnimations:@"curldoup" context:nil]; 
    [UIView setAnimationDelegate:self]; 
    [UIView setAnimationDuration:.5]; 
    [UIView setAnimationDidStopSelector:@selector(animationDidStop:finished:context:)]; 
    // [UIView setAnimationTransition:UIViewAnimationTransitionCurlUp forView:self.stage.nativeView cache:YES]; 
    frame.origin.y = 420; 
    viewController.view.frame = frame; 
    [UIView commitAnimations]; 
    //[viewController.view removeFromSuperview]; 

Когда я нажимаю Совершено лидерных доски, фон становится серым и приложение испортится.

Я очень уверен, что это происходит из-за линии:

frame.origin.y = 420; 

Поскольку экран iPhone является 420. Может кто-нибудь, пожалуйста, помогите мне на правильный номер, чтобы поставить там?

Любые идеи оценены, спасибо большое!

+0

Почему бы просто не отменить функциюMommalViewController, поскольку вы используете presentModalViewController для представления этого представления. –

+0

Итак, где я могу разместить этот код? – Raoul

+0

В вашем - (void) leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController {method –

ответ

1

Вы должны представить это следующим образом:

- (void)showGCLeaderboard { 
leaderboardController = [[GKLeaderboardViewController alloc] init]; 
if (leaderboardController != NULL) 
{ 
    leaderboardController.category = kLeaderboardID; 
    leaderboardController.leaderboardDelegate = self; 
    [self presentModalViewController:leaderboardController animated:YES]; 
} 

}

Так просто сделать это, чтобы отклонить его:

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController { 
    [self dismissModalViewControllerAnimated:YES]; 
    [viewController release]; 
} 

ИЛИ

Поскольку вы пытаетесь сделайте это на iPad, вы можете получить представление об этом, используя U IPopovers, но это зависит от вас, и это не обязательно.

+0

Не работает ... Я получаю ошибки – Raoul

+0

Каковы ошибки? –

+0

необъявленный код ... leaderboardController и другие. Вы можете увидеть мой пост о треске, которую я использовал, и посмотреть правильный код, который мне нужно добавить? Спасибо – Raoul