Не могу зафиксировать вращение в портретной ориентации в приложении для iOS 6.1

У меня есть приложение, в котором в настройках сборки включены альбомная левая и правая альбомная ориентация, но я бы хотел, чтобы они были доступны только в одном ViewController в приложении.

Я использую навигационный контроллер, и в первом ViewController, который я помещаю в стек, я хотел бы вообще отключить вращение. Я пробовал все 3 из них без успеха:

- (BOOL)shouldAutoRotate {
    return NO;
}

- (NSUInteger)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return NO;
}

Когда я поворачиваю устройство в симуляторе, макет все равно меняется. Я знаю, что последний метод устарел в iOS 6.

Любые идеи?


person Andrew    schedule 04.09.2013    source источник


Ответы (1)


Починил это. Причина заключалась в том, что навигационный контроллер вращался, и это не вызывало - (BOOL)shouldAutorotate в контроллере вида сверху, как я думал.

Я создал подкласс навигационного контроллера и добавил

- (BOOL)shouldAutorotate {
    return NO;
}
person Andrew    schedule 04.09.2013