Xcode iPAD上的游戏中心视图(灰色屏幕)

Xcode iPAD上的游戏中心视图(灰色屏幕),xcode,view,leaderboard,Xcode,View,Leaderboard,我使用此代码向领导板显示: -(void)viewscores:(SPEvent*)event { tempVC = [[UIViewController alloc] init]; GKLeaderboardViewController* leaderboardController = [[[GKLeaderboardViewController alloc] init] autorelease]; if (leaderboardController !

我使用此代码向领导板显示:

 -(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。 有人能帮我打正确的号码吗


任何想法都很感激,非常感谢

您应该这样呈现它:

- (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上实现这一点,您可以通过使用UIPopover对其产生兴趣,但这取决于您自己,也不是必需的。

既然您正在使用presentModalViewController来呈现该视图,为什么不干脆解散ModalViewController呢?那么我应该将代码放在哪里呢?在您的-(无效)排行榜ViewControllerdFinish中:(GK排行榜viewController*)viewController{method你能告诉我需要添加的全部代码吗?我不明白你想说什么,请让它更容易理解,比如把代码放在方法之后。谢谢下面我的回答。未声明的代码…leaderboardController和其他。你能看到我关于我使用的cod的帖子,并看到我需要添加的正确代码吗?谢谢s、 将此添加到您的.h:gk LeaderBoardViewController*leaderboardController;使用未声明的标识符:leaderboardController.category=kLeaderboardID;leaderboardController.leaderboardDelegate=self#define kLeaderboardID@“001”然后在你的.h.中添加GK LeaderboardViewControllerDelegate。但是老实说,你应该能够自己解决这些问题,因为它们都很琐碎。你熟悉Objective-C的工作原理吗?如果这段代码有帮助,请打勾直到它变绿,如果它真的对你有帮助,请投票!