Как отключить книжную ориентацию на UINavigationController rootViewController - PullRequest
1 голос
/ 01 декабря 2011

У меня есть класс HomeView как rootViewController для UINavigationController в моем приложении для iPad.В файле info.plist установлена ​​только альбомная ориентация, и HomeView не реализует shouldRotateToInterfaceOrientation:, однако при вращении симулятора вид вращается для обеих ориентаций.

Как использовать только альбомную ориентациюUIViewController?

Ответы [ 2 ]

5 голосов
/ 02 декабря 2011

Если вы не реализуете shouldAutorotateToInterfaceOrientation: среда выполнения вызовет метод для суперкласса, UIViewController .

Вместо этого вы должны соответствующим образом отреагировать на метод с ориентациями, на которые вы хотите повернуть:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    BOOL shouldAutorotate = NO;

    if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft
        || interfaceOrientation == UIInterfaceOrientationLandscapeRight) {

        shouldAutorotate = YES;
    }

    return shouldAutorotate;
}

Посмотрите справочную страницу UIInterfaceOrientation и справочную страницу UIViewController shouldAutorotateToInterfaceOrientation: для получения дополнительной информации.

0 голосов
/ 01 декабря 2011

Не следует удалять метод shouldAutorotateToInterfaceOrientation; это не остановит вращение интерфейса, оно только не выполнит код, который вы могли бы иметь в этом методе. Вместо этого вы должны попробовать что-то вроде этого (при условии, что вы никогда не хотите, чтобы интерфейс вращался):

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