У меня есть приложение, которое может запускаться в портретном или ландшафтном режиме.Элементы управления на главном экране выглядят по-разному, в зависимости от того, в каком режиме находится приложение.
Вот проблема: если я запускаю приложение в альбомном режиме, элементы управления не там, где должны быть, они сохраняют свои позиции, как приложение в портретном режиме.Я попытался проверить это немного, и вот что я нашел -
в 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;
Теперь, если устройство находится в альбомном режиме, и я пытаюсь установить свое приложение, мне будет дважды напечатано «Портрет», вместо «Пейзаж»