2

我有一个 iPad 应用程序,它适用于 6 之前的 iOS 版本。

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

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

我很清楚在 iOS 6 中不推荐使用 shouldAutorotateToInterfaceOrientation 的更改,并且由全屏模式视图控制器覆盖的任何视图控制器都不会像在 6 之前的 iOS 中那样接收旋转事件。我做了这个线程中的建议:iOS 6 旋转问题 - Presented Modal View Controller 没有旋转,这是手动将旋转事件从模态视图控制器传递到它后面的视图控制器,但它后面的视图控制器仍然没有更新其布局。有什么解决办法吗?

4

1 回答 1

5

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

于 2012-11-10T20:17:33.740 回答