cocos2d Сцена становится черной после ухода из списка лидеров GameCenter - PullRequest
0 голосов
/ 26 июня 2011

У меня странная проблема, которая возникает только на iPad-версии моей игры. Когда я поднимаю таблицу лидеров GameCenter, она выглядит как обычно. Там нет проблем. Но когда вы нажимаете кнопку закрытия, список лидеров исчезает, а сцена cocos2d становится черной. Нет ошибок, ничего. Ничто из того, что я делаю, не может вернуть экран обратно. Я попытался возобновить работу директора и даже попробовал некоторые решения в аналогичной теме.

Вот мой код на сцене cocos2d. GCController - это просто подкласс RootViewController, ничего особенного:

tempVC = [[GCController alloc] init];

GKLeaderboardViewController *leaderboardController = [[[GKLeaderboardViewController   alloc] init] autorelease];

if (leaderboardController != nil)
{
    leaderboardController.timeScope = GKLeaderboardTimeScopeAllTime;
    leaderboardController.category = [NSString stringWithFormat:@"%@%@", [self  cleanString:selectedSong], @"TotalHD"];
    leaderboardController.leaderboardDelegate = self;
    [[[CCDirector sharedDirector] openGLView] addSubview:tempVC.view];
    [tempVC presentModalViewController:leaderboardController animated:YES];
}

- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
    [tempVC dismissModalViewControllerAnimated:YES];
    [tempVC.view.superview removeFromSuperview];
    [tempVC release];
}

У кого-нибудь есть идеи? Если я могу предоставить больше информации, дайте мне знать. Спасибо.

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Вы не предоставляете достаточно кода.Я не вижу ошибок в коде, который вы показываете в данный момент.Наиболее вероятная причина появления черного экрана (в зависимости от того, как вы работаете) заключается в том, что таймеры были прерваны, и вам может потребоваться сбросить их с помощью

- (void) onEnter;

или

- (void) onEnterTransitionDidFinish;

Еслиэто не так, тогда отправьте больше кода, и я проверю назад.Нам нужно увидеть, когда представление будет отображено и к чему оно должно возвращаться.

0 голосов
/ 30 мая 2014
- (void)leaderboardViewControllerDidFinish:(GKLeaderboardViewController *)viewController
{
    [tempVC dismissModalViewControllerAnimated:YES];
    **[tempVC.view removeFromSuperview];**
}
...