У меня есть достаточно простое приложение с разделенным представлением, адаптированное из кода iPhone. Основная функциональность заключается в общих классах с классами, специфичными для iPhone и iPad, которые наследуют и дополняют код. Все классы, используемые в приложении для iPad, имеют следующее:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { // Overriden to allow any orientation. return YES; }
Контроллер основного представления состоит из UIToolbar и UITableView. Правильно реагирует на повороты на каждом этапе, такт два. Если я представлю модальный диалог из этого представления:
navigationController = [[UINavigationController alloc] initWithRootViewController:tvc]; navigationController.modalPresentationStyle = UIModalPresentationFormSheet; [self presentModalViewController:navigationController animated:NO];
Все работает, как ожидалось, включая вращение устройства, пока я не закрою диалог каким-либо образом с помощью:
[self dismissModalViewControllerAnimated:YES];
В этот момент мой основной вид поворачивается на 90 градусов. Я просмотрел настройки в файлах пера, и вроде все в порядке. Любой совет? Модальный диалог, представленный UITableView слева, не представляет этой проблемы.
Бонусный вопрос:
Я обнаружил, что в модальном диалоговом окне, представленном левым представлением, действительно есть сбой. Но только один. Если он представлен всплывающим окном в портретном режиме и устройство повернуто, вы получите довольно впечатляющий графический сбой, поскольку он навсегда исчезнет из поля зрения!