使用多个不都支持横向模式的 UIWindows 时出现问题

Posted

技术标签:

【中文标题】使用多个不都支持横向模式的 UIWindows 时出现问题【英文标题】:Issue when using multiple UIWindows that don't all support landscape mode 【发布时间】:2014-12-02 20:21:22 【问题描述】:

我有一个使用两个 UIWindows 的非常简单的测试 ios8 应用程序。第一个窗口只允许以纵向模式显示。当显示时,第二个窗口允许 AllButUpsideDown。

第一个窗口中的按钮可用于显示第二个窗口...

第二个窗口支持横向模式,如下图...

如果第二个窗口在横向模式下被关闭(移除),第一个窗口现在看起来 如下所示..

为什么左侧的状态栏是横向的?另外,我注意到 [UIScreen mainScreen].bounds 是横向大小?

(设置状态栏方向没有任何作用)

任何帮助将不胜感激,谢谢。

【问题讨论】:

【参考方案1】:

我找到了解决方案并认为我会分享..

要强制改变方向,您必须“呈现”一个视图控制器,该控制器的preferredInterfaceOrientationForPresentation 方法设置为您想要的方向。因此,在上述情况下,主窗口的根视图控制器可以呈现/关闭一个空白视图控制器,并将其首选方向设置为纵向。

【讨论】:

【参考方案2】:

当您单击“窗口 2”的右侧部分时,会发生什么?如果您查看单击的点,您是否有正确的坐标?

【讨论】:

以上是关于使用多个不都支持横向模式的 UIWindows 时出现问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS 8 - UIWindow 方向总是纵向的

自定义 UIWindows 在 iOS 8 中无法正确旋转

如何在多个uiwindows之间传递事件

setRefreshed:在横向模式下发送到 UIViewController 的无法识别的选择器

如何使用 phonegap 构建同时支持纵向和横向启动屏幕?

横向模式下的 UINavigationController 后退按钮问题?