我已经为此工作了好几天,但无法破解它。事件的顺序是:
- 在横向(假设正确)中,用户点击“编辑”按钮。
- 一个只有纵向的模态界面滑入。它的 shouldAutorotateToInterfaceOrientation 只为纵向返回 yes。
- 设备确信它处于纵向模式。
- 问题 1:如果用户在没有实际旋转到纵向模式的情况下关闭界面,则设备报告该界面处于横向右侧(确实如此),但界面布局为纵向。
- 问题2:如果用户旋转到纵向,界面不会重新布局。
- 问题 3:(这很奇怪)旋转回到按下编辑按钮的相同横向(右)会导致状态栏返回横向,但没有其他任何变化。我所有的东西都保持纵向模式。旋转到另一个(左)横向效果很好。
我需要一些方法来强制布局引擎为设备实际所处的方向重做布局。
UIView - layoutSubviews, - setNeedsLayout 和 -layoutIfNeeded 没有任何作用。
谢谢你的帮助。