popViewController не самовращается назад к позволенной ориентации

У меня есть два UIViewControllers, "A" и "B", где "A" переопределяет shouldAutorotateToInterfaceOrientation для возврата ДА для UIInterfaceOrientationPortrait, и "B" возвращает ДА для всех ориентаций. В моем примере "A" является корневым контроллером представления навигации, и я затем использую pushViewController для "B". После этого я поворачиваю устройство в среду, которая успешно самовращается "B", затем я выталкиваю "B" (кнопка "Назад" или через popViewController) для возврата к "A".

Когда быть предназначением iPhone OS 3.1.3, "A" возвращается к портретной ориентации как ожидалось. При предназначении для iPhone OS 3.2 у меня есть два побочных эффекта:

  1. "A" отображен в среде.
  2. Панель навигации не обновляет даже при том, что "A" теперь отображен. Панель навигации все еще показывает объекты для "B". Только после попытки пойти спина/поп еще раз будет панель навигации, анимационная для показа объектов для "A". Если я вместо этого пытаюсь продвинуть "B" снова и возвратиться, я должен появиться дважды, прежде чем панель навигации анимирует для показа объектов для "A". Во время них "промежуточное звено выталкивает" представление для "A", остается отображенным.

При исследовании этой проблемы я видел, что другие ответы предлагают выполнить вращение вручную ([UIDevice setOrientation] или через преобразование), однако это не помогает понять, какова проблема, особенно почему это ведет себя по-другому между двумя ОС.

Таким образом, мой вопрос: должен все мои UIViewControllers на стеке UINavigationController поддерживать точно то же продвижение ориентаций? И в противном случае затем есть ли что-то, что я должен сделать, чтобы заставить его вести себя, как это сделало для ОС 3.1.3?

6
задан JoeGaggler 7 May 2010 в 19:06
поделиться

2 ответа

Похоже, что для более новых ОС требуется, чтобы все контроллеры UIViewController в стеке UINavigationController поддерживали один и тот же набор ориентаций.

1
ответ дан 17 December 2019 в 22:11
поделиться

У меня та же проблема, и я нашел ответ по этой ссылке: Проблемы стека навигации UINavigationController в ландшафтном режиме один из моих контроллеров представления не вернул YES на shouldAutorotateToInterfaceOrientation.

0
ответ дан 17 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

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