iPad模态视图控制器在关闭时旋转界面

时间:2014-04-17 14:09:06

标签: ios objective-c ipad modalviewcontroller interface-orientation

我遇到的问题是我正在处理的应用程序是这样的:

应用程序窗口的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 个答案:

答案 0 :(得分:1)

听起来好像在iPad上你的MenuViewController rootViewController支持多种界面方向,而在iPhone上却没有。这是猜测,因为你还没有说过这个。

如果是这种情况,并且rootViewController确实支持多个界面方向,则修复将覆盖- supportedInterfaceOrientations并返回肖像,这似乎是您建议您想要的。