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

时间:2014-10-15 11:31:24

标签: ios objective-c autolayout orientation modalviewcontroller

我的结构稍微复杂(app仅限iPad):

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

NavVC有一个名为MenuVC的根VC。

MenuVC使用自定义转换推送DataVC。

DataVC以模态方式呈现ModalVC(Apple的QLPreviewController)。

我需要将整个应用程序设置为仅景观,除了需要仅限肖像的ModalVC(我猜它可能都是两个但是它显示了一个纵向PDF所以它没有多大意义让它风景)

我所做的是:

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

我将此代码添加到MainVC:

- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskLandscape;
}

这只会在Landscape中锁定所有应用程序,但由于某些原因,ModalVC仍然可以旋转到所有方向,这将是理想的,但不幸的是,这会导致我的问题:

如果我在呈现ModalVC时将iPad旋转到肖像(这是用户将用来阅读PDF的内容),然后在仍然使用肖像时关闭ModalVC,则MainVC徽标向左移动256个点,打破约束(虽然Xcode没有错误)。 有趣的是,256是iPad的宽度和高度之间的差异......巧合?

不确定是否有用但在呈现ModalVC时我在Xcode中收到此警告:

  

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

0 个答案:

没有答案