Если это простое наложение, просто сделайте паузу и выполняйте вызовы UIKit напрямую. Как это:
- (void)playerChanged
{
[[CCDirector sharedDirector] pause];
UIAlertView *alert = [[[UIAlertView alloc]
initWithTitle:NSLocalizedString(@"CHANGEPLAYER", nil)
message:nil
delegate:self
cancelButtonTitle:nil
otherButtonTitles:NSLocalizedString(@"OK", nil),
nil
] autorelease];
[alert show];
}
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex
{
(void)alertView;
(void)buttonIndex;
[[CCDirector sharedDirector] resume];
}
Если вы действительно занимаетесь целым окном, то утилизируйте его полностью
[[CCDirector sharedDirector] end];
и повторите инициализацию и вызовите runWithScene, когда вернетесь. Танец отсоединения / прикрепления, кажется, не работает хорошо или последовательно.