ориентация iPad изменяет проблему

Мое приложение для iPhone отображает некоторое нечетное поведение при выполнении на iPad относительно поддержки изменений ориентации.

Приложение запускает с целью контроллер (назовите его, просматривают ради аргумента), и контроллер навигации, и shouldAutorotateToInterfaceOrientation возвращает ДА для портрета только. На контроллер навигации я продвигаю контроллер представления (представление B), которое также возвращает ДА для портрета только. Затем я продвигаю другой контроллер представления (представление C) на военно-морской контроллер, который поддерживает все вращения и корректирует объекты на экране на основе ориентации для вращения к.

Когда это выполняется на средстве моделирования iPhone и устройстве, если Вы вращаетесь, чтобы благоустроить выставленный для обозрения C и затем коснуться кнопки "Назад" для возврата к представлению B, это делает правильную вещь и смещает представление B назад к режиму портрета. (В средстве моделирования это даже поворачивает средство моделирования назад к портрету автоволшебно.)

Проблема, которую я испытываю, состоит в том, что, когда я делаю эту точно ту же самую последовательность событий на средстве моделирования iPad и устройстве, представление B, которое появляется, не повернуто назад к портрету, и военно-морской контроллер все еще показывает информацию для представления C. Затем я касаюсь на кнопке "Назад", и представление остается таким же, но военно-морские шоу контроллера, нормальные для представления B (но все все еще в альбомном режиме). Затем если я касаюсь кнопки "Назад" снова, представление A появляется при представлении B, военно-морские объекты панели, и наконец касающийся назад снова помещают меня выставленный для обозрения с военно-морской панелью объекты.

Если я перехожу к представлению B о iPad и начинаю вращаться вокруг, shouldAutorotateToInterfaceOrientation огни без того, пока я не достигаю режима портрета и затем всех возвратов к нормальному.

Приложение создается с последней выпущенной версией iPhone SDK и имеет настройки сборки следующим образом: Основывайте SDK iPhone Simulator 4.0, Семейство Целевых устройств iPhone, Цель Развертывания iPhone OS iPhone OS 3.1.3.

Какие-либо идеи?

7
задан BP. 9 July 2010 в 15:03
поделиться

2 ответа

Apple заявляет:

Случай: Все контроллеры дочерних представлений в вашем UITabBarController или UINavigationController не согласовывают общий набор ориентации.

Ответ: Чтобы убедиться, что все ваши дочерние контроллеры представлений вращаются правильно, вы должны реализовать shouldAutorotateToInterfaceOrientation для каждого контроллера представления, представляющего каждую вкладку или уровень навигации. Каждый должен согласовать одну и ту же ориентацию, чтобы поворот произошел. То есть все они должны вернуть YES для одинаковых позиций ориентации.

http://developer.apple.com/iphone/library/qa/qa2010/qa1688.html

Вы можете установить ориентацию устройства в контроллере навигации, а не в отдельных представлениях. Затем вы можете проверить, какой вид находится в стеке, и повернуть его в зависимости от результата. Таким образом, навигационный контроллер также обрабатывает всю ориентацию.

4
ответ дан 7 December 2019 в 14:28
поделиться

Вот код, который я использую для предотвращения этой ошибки:

- (void)viewDidLoad {  
    if (self.interfaceOrientation == UIInterfaceOrientationPortrait) {
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(M_PI/2);
        self.view.bounds = CGRectMake(0.0, 0.0, 480, 320);
    }
    [UIView commitAnimations];
}

и

- (void)viewDidLoad {
    if (self.interfaceOrientation == UIInterfaceOrientationLandscapeRight) {
        self.view.transform = CGAffineTransformIdentity;
        self.view.transform = CGAffineTransformMakeRotation(-(M_PI / 2));
        self.view.bounds = CGRectMake(0, 0, 320, 480);;
    }
    [UIView commitAnimations];
}

В зависимости от ориентации устройства, вам нужно будет изменить часть кода.

0
ответ дан 7 December 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: