Странная ошибка автоповорота iOS6

Я использую эту категорию для поддержки автоматического поворота в ios 6

@implementation UINavigationController (RotationIn_IOS6)

-(BOOL)shouldAutorotate
{
    NSLog(@"Last Object is %@",[[self.viewControllers lastObject] description]);
    return [[self.viewControllers lastObject] shouldAutorotate];
}

-(NSUInteger)supportedInterfaceOrientations
{
    return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
    return [[self.viewControllers lastObject]  preferredInterfaceOrientationForPresentation];
}

Моя настройка приложения такая

  1. показывать экран пароля с вращением контроллера навигации отлично работает для обоих (симулятор, устройство).
  2. Аутентифицировать пользователя и показать дом Поворот экрана работает только в симуляторе, а не в устройстве

-(BOOL)shouldAutorotate

Кто-нибудь знает, как решить эту проблему?

1 ответ

Согласно ответу на этот вопрос, использование категории для переопределения метода в классе Какао является плохой идеей. "поведение не определено относительно того, какая реализация метода используется во время выполнения".

Я использую подкласс UINavigationController для достижения того, что вы пытаетесь сделать, и у вас не было никаких проблем, поэтому я предлагаю вам попробовать это.

Другие вопросы по тегам