shouldAutorotateToInterfaceOrientation & UINavigationController - PullRequest
3 голосов
/ 06 мая 2010

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

Я скопировал это в мой первый UIViewController (который помещается в UINavigationController):

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

Все работало нормально ... Однако, если я вставлю этот код во второй UIViewController (тот, который первый нажимает сверху после некоторого нажатия кнопки) - автоповорот не будет работать. shouldAutorotateToInterfaceOrientation вызывается при первой инициализации UIViewController, но после того, как он виден, и я поворачиваю устройство - ничего не происходит.

Итак, результат таков: первый вид хорошо поворачивается - портрет / пейзаж ... но после нажатия кнопки и перехода во второй вид я остаюсь застрявшим в этом портрете или пейзаже, независимо от того, что было активным.

Я попытался создать подкласс UINavigationController и установить флажок shouldAutorotateToInterfaceOrientation, но это также не работает.

Что я делаю не так?

Ответы [ 2 ]

1 голос
/ 07 мая 2010

В API есть ошибка, из-за которой он не работает во втором представлении. Первоначально я решил это с помощью setOrientation, но это частный API и, следовательно, не разумное решение. Я не выпускал никаких новых версий приложения, пока пытаюсь найти альтернативы (и я не думаю, что обновление клиентов до OS 4.0 - это решение). Я думаю, мне нужно будет вручную отслеживать ориентацию и поворачивать свои виды вручную, чтобы нейтрализовать последствия неправильного вращения.

0 голосов
/ 07 мая 2010

Вам необходимо реализовать этот метод во всех представлениях в иерархии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...