当模态视图控制器覆盖方向更改后,iOS 6视图控制器布局不会更新

Ech*_* Lu 2 objective-c ios ios6

我有一个iPad应用程序,适用于早于6的iOS版本.

我的根视图控制器显示一个列表,当您单击列表中的任何项目时,根视图控制器会显示一个模态视图控制器以显示项目的详细信息.

问题是,我的根视图控制器在横向和纵向上有不同的布局,当没有模态视图控制器时,它会在方向改变时更新布局没有问题,但是当被模态视图控制器覆盖时,它不会更新,这只发生在iOS 6.所以当你点击一个项目,然后模态视图控制器出现覆盖整个屏幕,然后你旋转设备,然后关闭模态视图控制器,根视图控制器仍然在旧的方向布局,这真的很烦人.

我很清楚iOS 6中的更改应该不允许使用AutorotateToInterfaceOrientation,并且全屏模式视图控制器所覆盖的任何视图控制器都不会像在早于6的iOS中那样接收旋转事件.我做了此线程中的建议:iOS 6旋转问题 - 从提供的模态视图控制器无法旋转,手动将旋转事件从模态视图控制器传递到其后面的视图控制器,但其后面的视图控制器仍然不更新其布局.有解决方案吗

Leo*_*ica 5

将所有旋转逻辑移动到viewDidLayoutSubviews.就这么简单,您将获得与以前相同的功能.在您关闭模态视图控制器后,将出现的情况是,布局视图将是布局,然后您可以切换到当前方向的相应布局.