Я пробовал все утро, чтобы исправить это, но безрезультатно. Вот моя ситуация:Вращение в iOS6
У меня есть контроллер навигации по двум представлениям в моем приложении. Первый вид не должен вращаться от портрета. Второй вид должен вращаться между портретом и пейзажем. Возвращаясь к первому виду, нужно отправить его обратно на портрет.
Вот код, у меня в данный момент (который я уже экспериментировал с без успеха, так что ни в коем случае твердый):
AppDelegate:
- (NSUInteger)application:(UIApplication*)application
supportedInterfaceOrientationsForWindow:(UIWindow*)window
{
return UIInterfaceOrientationMaskAll;
}
навигации контроллер:
- (BOOL)shouldAutorotate
{
return self.topViewController.shouldAutorotate;
}
Контроллер первого взгляда:
-(BOOL)shouldAutorotate
{
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
Второй контроллер вид:
-(BOOL)shouldAutorotate
{
return YES;
}
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAllButUpsideDown;
}
Текущее поведение является то, что приложение будет оставаться в Portait на первом ВК, поверните должным образом на втором VC, но если я вернусь в ландшафт, первый ВК в ландшафте и остается там. Как я могу это исправить?
Я думаю, что тип вращения интерфейса обескуражен и не поддерживается под iOS 6+. UINavigationController зарегистрирован как «Не подкласс». У вас будет больше удачи, если вы представите свой второй контроллер представлений в виде модального представления, а не через навигационный контроллер. Модифицированные контроллеры представления могут вращаться независимо от своего отображаемого контроллера представлений. – Greg