Вероятно, это происходит потому, что Apple изменила способ управления ориентацией UIViewController. В iOS6 Oreintation обрабатывает По-другому, в iOS6 shouldAutorotateToInterfaceOrientation
метод устарел. Контейнеры iOS (такие как UINavigationController
) не консультируются со своими дочерними элементами, чтобы определить, следует ли им выполнять автоповорот. По умолчанию ориентация интерфейса, поддерживаемая приложением и контроллером представления, установлена на UIInterfaceOrientationMaskAll
для идиомы iPad и UIInterfaceOrientationMaskAllButUpsideDown
для идиомы iPhone.
Для получения дополнительной информации об этом вы должны посетить эту ссылку Ниже я создал категорию для обработки изменения ориентации.
Итак, вам нужно будет реализовать еще два метода для управления ориентацией UIViewController в iOS6.
Представлено в IOS6 Разрешить изменение ориентации
- (BOOL)shouldAutorotate
{
return YES;
}
Возвращает номер Oreintation, который будет поддерживаться устройством.
- (NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskAll;
}
Теперь проверьте, какую ориентацию вы получаете.
РЕДАКТИРОВАТЬ: поместите этот код в свой FirstViewController, добавленный как корневой ViewController. Это поможет UIViewController определить его ориентацию.
@implementation UINavigationController (RotationIn_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
Надеюсь, я буду вам полезен.
person
Kamar Shad
schedule
15.10.2012