У меня возникла проблема с iOS 6 SDK: у меня есть некоторые представления, которые нужно разрешить вращаться (например, видеовизу), а некоторые из них не нужны. Теперь я понимаю, что мне нужно проверить все ориентации в Info.plist приложения, а затем разобраться в каждом ViewController, что должно произойти. Но это не работает! Приложение всегда поворачивается к ориентациям, которые указаны в Info.plist.
Info.plist:
<key>UISupportedInterfaceOrientations</key>
<array>
<string>UIInterfaceOrientationPortrait</string>
<string>UIInterfaceOrientationLandscapeLeft</string>
<string>UIInterfaceOrientationLandscapeRight</string>
</array>
любой ViewController, который не должен вращаться:
//deprecated
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
- (NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
Наблюдение: приложение поворачивается к пейзажной и портретной ориентации. Любые идеи, почему или что я делаю неправильно?
Cheers, Марк
Изменить: мои последние результаты также показывают, что если вы хотите иметь поворот в какой-то момент вашего приложения, вам нужно активировать все четыре направления вращения в настройках вашего проекта или Info.plist. Альтернативой этому является переопределение
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
в AppDelegate, который переопределяет Info.plist. Невозможно больше установить только портрет в вашем Info.plist, а затем иметь поворот в каком-либо ViewController, переопределив shouldAutorotateToInterfaceOrientation или supportedInterfaceOrientations.