Контроллер модального вида iPad вращает интерфейс при отклонении
У меня проблема с приложением, над которым я работаю, которое выглядит так:
Окно приложения имеет rootViewController
который установлен в пользовательский класс (MenuViewController
) из UIViewController
, Этот контроллер вида имеет rootViewController
собственное имущество. Всякий раз, когда устанавливается, это происходит (действительно короткая версия кода):
- (void)setRootViewController:(UIViewControlelr *)rootViewController
{
...
_rootViewController = rootViewController;
if (self.rootViewController) {
[self addChildViewController:rootViewController];
[self.view addSubview:rootViewController.view];
}
...
}
Теперь это MenuViewController
может показать модальный контроллер представления поверх его rootViewController.
Я делаю это так:
[self.rootViewController presentModalViewController:viewController animated:YES completition:nil];
Все выглядит хорошо, пока здесь. Теперь на iPad каждый раз, когда я звоню [self.presentingViewController dismissViewControllerAnimated:YES completion:nil]
из моего модального контроллера вид интерфейса под ним вращается в той же ориентации (то есть UIInterfaceOrientationLandscapeLeft
) независимо от первоначальной ориентации, когда был представлен контроллер представления.
Итак, в заключение, иерархия моего представления такова:
Window
|
- Menu View Controller
|
- Root View Controller
|
- Modal view controller
Кто-нибудь знает, как я могу это исправить? Это не происходит на iPhone.
1 ответ
Мне кажется, что на iPad ваш MenuViewController
"s rootViewController
поддерживает несколько ориентаций интерфейса, в то время как на iPhone это не так. Это предположение, так как вы ничего не сказали по этому поводу.
Если это так, и rootViewController действительно поддерживает множественные ориентации интерфейса, исправление было бы переопределить - supportedInterfaceOrientations
и верните портрет, который, кажется, является тем, что вы предлагаете.