2012-05-11 9 views
0

は私がリーダーボードを表示するには、このコードを使用しています:私はリーダーボードの上に[完了]をクリックしますゲームセンタービュー(GRAY画面)

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

dismissModalViewControllerは、presentModalViewControllerを使用してそのビューを表示しているので、なぜそうしないのでしょうか。 –

+0

そのコードはどこに置かれますか? – Raoul

+0

あなたの - (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController {メソッド –

答えて

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

ORあなたがしようとしているので

iPadでこれをやってみると、U IPopoversしかしそれはあなた次第であり、それは必要ではありません。

+0

その機能していません...エラーが発生します – Raoul

+0

エラーは何ですか? –

+0

宣言されていないコード... leaderboardControllerなど。私が使用したコードについての投稿を見て、追加する必要がある正しいコードを確認できますか?ありがとう – Raoul