我有一个iPad应用程序,适用于早于6的iOS版本。
我的根视图控制器显示一个列表,当您单击列表中的任何项目时,根视图控制器会显示一个模态视图控制器以显示该项目的详细信息。
问题是,我的根视图控制器在横向和纵向上有不同的布局,当没有模态视图控制器时,它在方向改变时更新布局没有问题,但是当被模态视图控制器覆盖时,它没有更新,这只发生在iOS 6.所以当你点击一个项目,然后模态视图控制器出现覆盖整个屏幕,然后你旋转设备,然后关闭模态视图控制器,根视图控制器仍处于旧的方向布局,这真的很烦人。
我很清楚iOS 6中的更改应该不推荐使用SuperTotInterfaceOrientation并且全屏模式视图控制器覆盖的任何视图控制器都不会像在早于6的iOS中那样接收旋转事件。我做了这个建议thread:iOS 6 Rotation issue - No rotation from Presented Modal View Controller,它手动将旋转事件从模态视图控制器传递到其后面的视图控制器,但它后面的视图控制器仍然不更新其布局。任何解决方案?
答案 0 :(得分:5)
将所有旋转逻辑移至viewDidLayoutSubviews
。就这么简单,您将获得与以前相同的功能。在您关闭模态视图控制器后,将出现的情况是,布局视图将是布局,然后您可以切换到当前方向的相应布局。