Я использую движок cocos2d только в альбомной ориентации без авторотации.
Я хочу отобразить стандартное модальное представление достижений GC. Он обычно отображается в нижней части экрана (при удержании устройства в альбомной ориентации), но исчезает в правой части экрана (например, в модальных режимах портретной ориентации). Кажется, меняется ориентация для отклонения анимации, но до этого вид не вращается. Он просто скользит вправо.
Также я получаю предупреждение в консоли:
Unbalanced calls to begin/end appearance transitions for <UIViewController: 0x41b9a0>.
Вот как я показываю этот контроллер:
-(void)showAchievements:(id) sender {
utilityController = [[UIViewController alloc] initWithNibName:nil bundle:nil];
[[[CCDirector sharedDirector] openGLView] addSubview:utilityController.view];
GKAchievementViewController *achievements = [[GKAchievementViewController alloc] init];
if (achievements != nil)
{
achievements.achievementDelegate = self;
[utilityController presentModalViewController: achievements animated: YES];
}
[achievements release];
}
- (void)achievementViewControllerDidFinish:(GKAchievementViewController *)viewController
{
[utilityController dismissModalViewControllerAnimated:YES];
[utilityController release];
}
В gameConfig.h у меня следующая конфигурация:
#define GAME_AUTOROTATION kGameAutorotationNone
Пытался поменять на kGameAutorotationCCDirector
- тоже самое. kGameAutorotationUIViewController
- uiviews прыгает по всему экрану.
Пожалуйста, не предлагайте вращать UIView с CGAffineTransformMakeRotation
- это просто хак ...