У меня есть приложение, которое может запускаться в портретном или ландшафтном режиме. Элементы управления на главном экране выглядят по-разному в зависимости от того, в каком режиме находится приложение.
Вот проблема: если я запускаю приложение в альбомном режиме, элементы управления не там, где должны быть, они сохраняют свои позиции, как будто приложение находится в портретном режиме. Я попытался немного проверить это, и вот что я нашел -
в viewDidLoad и ViewWillappear я получаю информацию о том, что приложение находится в портретном режиме, хотя приложение работает в ландшафтном режиме. На вид было установлено правильное значение - ландшафтный режим. Проблема в том, что я хочу, чтобы эти компоненты были установлены на свои правильные позиции до появления представления (в противном случае я могу четко видеть их перемещение на экране).
Как правильно с этим справиться?
РЕДАКТИРОВАТЬ: в viewDidLoad и ViewWillAppear я называю это:
orientation = [self getOrientation];
if (orientation == OrientationsLandscape) {
NSLog(@"Landscape");
}
else {
NSLog(@"Portrait");
}
вот реализация [getOrientation]
- (int) getOrientation {
int currentOrientation = [UIApplication sharedApplication].statusBarOrientation;
if (UIInterfaceOrientationIsPortrait(currentOrientation)) return OrientationsPortrait;
else return OrientationsLandscape;
}
и перечисление def:
typedef enum {
OrientationsLandscape = 0,
OrientationsPortrait
} Orientations;
Теперь, если устройство находится в альбомном режиме, и я пытаюсь установить свое приложение, я получаю 2 раза напечатанное «Портрет», а не «Пейзаж».