2012-05-11 6 views
0

J'utilise ce code pour montrer les classements:Game Center Voir sur iPAD (écran GREY)

-(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]; 

Lorsque je clique sur DONE sur les tableaux de classement, l'arrière-plan devient gris et l'application obtient foiré.

Je suis très positif que cela est dû à la ligne:

frame.origin.y = 420; 

Depuis un écran iPhone est 420. Quelqu'un peut-il s'il vous plaît me aider sur le bon numéro pour y mettre?

Toutes les idées ont apprécié, merci beaucoup!

+0

Pourquoi ne pas simplement utiliser rejectModalViewController puisque vous utilisez presentModalViewController pour présenter cette vue. –

+0

Alors, où dois-je placer ce code? – Raoul

+0

Dans votre - (void) leaderboardViewControllerDidFinish: (GKLeaderboardViewController *) viewController {méthode –

Répondre

1

Vous devez présenter comme ceci:

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

}

Il suffit donc de faire de la rejeter:

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

OU

Puisque vous essayez de faites ceci sur un iPad, vous pouvez vous faire plaisir en utilisant U IPopovers mais cela dépend de vous et ce n'est pas nécessaire.

+0

Son ne fonctionne pas ... Je reçois des erreurs – Raoul

+0

Quelles sont les erreurs? –

+0

code non déclaré ... leaderboardController et autres. Pouvez-vous voir mon article sur la morue que j'ai utilisée et voir le bon code que je dois ajouter? Merci – Raoul