Если вид добавлен в окно, ориентация устанавливается как книжная, даже если устройство находится в альбомной ориентации.Если представление добавляется в делегат приложения, application: didFinishLaunchingWithOptions: method, то оно работает правильно.Но если представление добавляется позже, это не так.
В качестве примера, у меня есть процедура для переключения видов.Простейшая форма:
- (void)switchToNewViewController:(UIViewController *)newViewController {
if ([[window subviews]count]!=0) {
[[[window subviews]objectAtIndex:0] removeFromSuperview];
}
[window addSubview:newViewController.view];
}
Если это вызвано из didFinishLaunching, ориентация верна.Если это не так, ориентация является портретной.
Простейший случай в рамках didFinishLaunching У меня есть следующие две строки
// The following line works
[self switchToNewViewController:fullScreenViewController];
// The following line which delays the method call until later results
// in incorrect orientation
[self performSelector:@selector(switchToNewViewController:) withObject:fullScreenViewController afterDelay:0.1];
Есть ли способ заставить вид иметь правильную ориентацию?