Задача подключения
Вопрос
У меня действительно странная проблема ориентации. У меня есть последовательность контроллеров представления под контроллером навигации. Один из них может принять любую ориентацию. Когда я покидаю ориентацию, я должен использовать подключение. Самое смешное, что вращение происходит по мере того, как переход происходит на следующей странице. Обычно это не проблема, за исключением одного случая - от uideviceorientationportraitupsedown до нормального, заставляет все мои лучшие установленные элементы мигрируют около восьмой страницы.
Я думаю, что есть три способа исправить:
- Каким -то образом отделяйте подключение от моего вызова pushviewController (поэтому новое представление не нужно переворачивать)
- Установите мои элементы, чтобы быть навязчивым в верхней части устройства в лучшем виде (я проверил, и они, кажется, есть)
- Сбросьте размер y на элементах в методе ViewDidload, но это кажется неправильным.
Вот мой толчок нового представления на код стека:
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationPortrait];
ResultSelect_ViewController *resultSelect = [[ResultSelect_ViewController alloc] initWithNibName:@"ResultSelect" bundle:nil];
[self.navigationController pushViewController:resultSelect animated:YES];
Кто -нибудь еще считает странным, что симулятор не позволяет вам проверить перевернутую поведение портрета?
Решение 3
Способ избежать ошибки вращения при вращении от перевернутой до портрета - это не делать этого. Вместо этого вращай дважды останавливаясь на полпути (скажем, UIDeviceOrientationLandscapeRight
) Вопрос о времени не в том, чтобы использовать сон, а вместо этого реализовать didRotateFromInterfaceOrientation
и запустите второе вращение (или подтолкнуть к следующему взгляду) в этот момент.
Другие советы
Просто отметить: Apple начала использовать статический (возможно, даже динамический) анализатор и Блокирует приложения, которые используют частные методы (например setOrientation:
) от входа в магазин. Случилось с моим другом на прошлой неделе.
Пробовали ли вы построить против iPhone OS 3.0 и полагаться только на shouldRotateToInterfaceOrientation:
? Поведение кажется фиксированным (по сравнению с реализацией в 2.x) и - по крайней мере для меня - делает работу.
Как правило, вы не поддерживаете ориентацию вверх. Похоже, это стандартное поведение приложения Apple и имеет смысл. Завершение вниз не очень полезно и может вызвать путаницу с пользователем.
У нас была аналогичная проблема, когда подвесития мигрировали вверх и вниз по основному обзору при перевертывании перевернутого чехла. Мы просто перестали поддерживать вверх дном и это в основном решило проблему.