7

这一直困扰着我很长一段时间,我对此做了很多研究,但找不到答案。我第一次在这里发布问题,如果我犯了错误,请纠正/原谅我。

环境:iPad、iOS 6.0

问题:旋转后基本模式视图变为全屏。

描述:我有一个正在运行的全屏应用程序,当前显示一个模态视图控制器。从显示模式视图中,我通过执行以下操作显示另一个模式视图:

vc.modalPresentationStyle = UIModalPresentationFormSheet;
[self presentModalViewController:vc animated:YES];
//[self presentViewController:vc animated:YES completion:NULL];

当第二个视图出现时,我旋转了 iPad 设备。基本(第一个)模态视图变为全屏,最上面(第二个)模态视图保持 formSheet 样式。(正确旋转)

我可以通过向 navigationController 添加模态视图来解决此问题,但我想将其保留在模态视图中。

任何人都知道修复?我相信这里的这个人也有同样的问题: ios 6 Incorrect modal view size after rotation

顺便说一句,iOS 5 中一切正常。Apple 改变了 iOS 6 中的旋转方式。谢谢,-peter

4

2 回答 2

4

我找到了解决这个问题的方法。在呈现之前将最后一个模态视图的呈现样式设置为 UIModalPresentationCurrentContext。

像这样:

vc.modalPresentationStyle = UIModalPresentationCurrentContext; [自我presentModalViewController:vc动画:YES];

这解决了旋转 iPad 屏幕后基本模式视图更改大小的问题。

最初由Apple Dev 论坛上的人回答。

于 2013-02-20T21:12:02.860 回答
1

我遇到了完全相同的问题并使用了iOS 6 中的代码:Parent modal's modalPresentationStyle 在旋转后被忽略,就像一个魅力

于 2013-01-24T06:40:57.200 回答