Я пытаюсь внести некоторые изменения интерфейса в мое приложение, основываясь на ротации устройства.
Мое приложение - приложение, основанное на просмотре. Итак, его контроллер основного вида имеет метод didload.
Приложение запускается в портретной ориентации. Почти все изменения в ориентации устройства вызывают метод shouldAutorotateToInterfaceOrientation, но этот метод не вызывается, когда устройство помещается в портретную ориентацию после перехода из любой альбомной ориентации.
При отладке приложения я поставил
NSLog(@"orientation=%d", interfaceOrientation);
в моем методе shouldAutorotateToInterfaceOrientation, и то, что я вижу, довольно странно:
- Когда я запускаю приложение, beforeAutorotateToInterfaceOrientation вызывается 6 раз, прежде чем интерфейс приложения появляется. Каждый раз, когда он запускается, он сообщает другое число для ориентации: порядок, который он сообщает на консоли: портрет, портрет, портрет, пейзаж вправо, пейзаж влево, вверх ногами) (????).
В это время приложение только начинается. Отладчик сообщает обо всех 6 вызовах, поступивших от делегата приложения.
Итак, вот вопросы:
- Почему AutorotateToInterfaceOrientation не вызывается, когда устройство входит в портрет?
- Почему делегат вызывает этот метод 6 раз до того, как приложение становится видимым, особенно если вращение не выполняется?
спасибо.