iOS-取消子VC提供的模式后,父VC自动布局中断

iOS-取消子VC提供的模式后,父VC自动布局中断,ios,objective-c,autolayout,orientation,modalviewcontroller,Ios,Objective C,Autolayout,Orientation,Modalviewcontroller,我有一个稍微复杂的结构(应用程序仅限于iPad): 我的根VC MainVC是一个自定义容器视图控制器,右上角有一个徽标(受自动布局约束)。 在徽标下方有一个全屏容器视图,其中嵌入了一个导航控制器子类,称之为NavVC。这样,当NavVC推出新控制器时,徽标可以固定并始终可见 NavVC有一个名为MenuVC的根VC MenuVC使用自定义转换推送数据VC DataVC以模态的方式展示了ModalVC(苹果的QLViewController) 我需要整个应用程序只能是横向的,除了需要是纵向的Mo

我有一个稍微复杂的结构(应用程序仅限于iPad):

我的根VC MainVC是一个自定义容器视图控制器,右上角有一个徽标(受自动布局约束)。
在徽标下方有一个全屏容器视图,其中嵌入了一个导航控制器子类,称之为NavVC。这样,当NavVC推出新控制器时,徽标可以固定并始终可见

NavVC有一个名为MenuVC的根VC

MenuVC使用自定义转换推送数据VC

DataVC以模态的方式展示了ModalVC(苹果的QLViewController)

我需要整个应用程序只能是横向的,除了需要是纵向的ModalVC(我想它可以是两者,但它显示的是一个纵向PDF,所以它没有太多的意义,让它横向)

我所做的是:

我在项目设置中启用了所有旋转

我将此代码添加到MainVC:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}
这只会锁定横向中的所有应用程序,但出于某种原因,ModalVC仍然能够旋转到所有方向,这将是理想的,但不幸的是,这导致了我的问题:

如果我在显示ModalVC时将iPad旋转到纵向(这是用户阅读PDF时要做的),然后在仍处于纵向时关闭ModalVC,则MainVC的徽标向左移动256个点,打破了限制条件(尽管Xcode没有给出错误)。 有趣的是,iPad的宽度和高度之差是256。。。巧合

不确定是否有用,但在演示ModalVC时,我在Xcode中得到以下警告:

对QLRemotePreviewContentController开始/结束外观转换的调用不平衡


这似乎是QLPreviewController中的一个错误。。。将其替换为UIViewController不会产生相同的结果,并且效果良好。