По принцип се опитвам да възпроизведа основната функционалност на приложението „Веднъж“. Имам изглед от камера и друг изглед с изглед на текст върху него.
Добавям и двата изгледа към прозореца. Всичко е наред засега.
[window addSubview:imagePicker.view];
[window addSubview:textViewController.view];
Разбирам, че UIImagePickerController не поддържа авторотация, така че се справям ръчно, като гледам UIDeviceOrientationDidChangeNotifications и прилагам необходимите трансформации към textViewController.view.
Сега проблемът тук е клавиатурата. Ако не направя нищо, просто остава в портретен режим. Мога да го накарам да се върти, като добавя следния код към манипулатора на известията.
[[UIApplication sharedApplication] setStatusBarOrientation:interfaceOrientation];
[textView resignFirstResponder];
[textView becomeFirstResponder];
Следният прост тест обаче води до странно поведение.
- Стартирайте приложението в портретен режим.
- Завъртете устройството на 90 градуса по часовниковата стрелка.
- Завъртете устройството на 90 градуса обратно на часовниковата стрелка (обратно в първоначалната позиция).
- Завъртете устройството на 90 градуса по часовниковата стрелка.
След стъпка 4, вместо клавиатурата в пейзажен режим, се показва клавиатурата в портретен стил, изкривена, за да пасне в рамката на пейзажната клавиатура.
Може би подходът ми е грешен от самото начало. Чудех се дали някой е успял надеждно да накара клавиатурата да промени ориентацията си в отговор на setStatusBarOrientation.