Мне очень тяжело заставить свое приложение правильно поддерживать все ориентации.
Проблема с запуском. Я сделал следующие шаги:
Добавлено:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortraitUpsideDown</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
<string>UIInterfaceOrientationPortrait</string>
</array>
- Убедитесь, что все мои контроллеры представления всегда возвращают YES в shouldAutorotateToInterfaceOrientation
- Добавлены все изображения по умолчанию *
В альбомной ориентации - приложение начинает показывать правильное изображение по умолчанию, но затем фактическое приложение запускается в портретной ориентации. Методы willRotate ... и shouldAutorotate .. не вызываются.
Я даже попробовал метод Swizzling (из Wordpress):
+ (void)youWillAutorotateOrYouWillDieMrBond {
NSLog(@"youWillAutorotateOrYouWillDieMrBond");
Swizzle([NSClassFromString(@"UISplitViewController") class], @selector(shouldAutorotateToInterfaceOrientation:), @selector(MyShouldAutorotateToInterfaceOrientation:), NULL);
Swizzle([NSClassFromString(@"UIViewController") class], @selector(shouldAutorotateToInterfaceOrientation:), @selector(MyShouldAutorotateToInterfaceOrientation:), NULL);
}
- (BOOL)MyShouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
NSLog(@"MyShouldAutorotateToInterfaceOrientation (%@)", self);
return(YES);
}
Тоже без удачи. Независимо от того, что я делаю - если устройство находится в альбомной ориентации, приложение запускается как портрет.
Я прочитал соответствующие документы Apple - и они утверждают, что приложения всегда запускаются в портретной ориентации, но затем поворачиваются, если VC поддерживают ориентацию. Кажется, я делаю все как надо ...
Действительно из идей здесь, был бы признателен за любую проницательность.