gpt4 book ai didi

ios6 - 当模态电影播放器​​覆盖时,UISplitViewController 无法识别设备旋转

转载 作者:行者123 更新时间:2023-12-01 04:45:57 25 4
gpt4 key购买 nike

[这是发布在 Apple Developer Forums 上的但还没有得到答复,所以我会在这里尝试。]

我的应用程序将 UISplitViewController 用于 iPad 主视图/详细 View 并在 iOS 6 上运行。 Split View Controller 是其窗口的 Root View Controller 。详细 View 主要由嵌入 UINavigationController 中的 UIWebView 组成。详细 View 中唯一的其他元素是导航 Controller 提供的工具栏和导航栏。当 Web View 显示带有嵌入 YouTube 视频的页面时,用户可以将视频全屏显示。这全部由 UIWebView 完成---我不负责创建全屏视频播放器。以防万一,一旦视频播放器处于全屏 View ,UIApplication 共享实例的 keyWindow 就不是视频播放期间的主应用程序窗口,而是 MPFullScreenTransitionViewController 的一个实例。

如果用户在此全屏播放期间旋转设备,然后结束播放,则 UISplitViewController 不会正确放置其子项。方法

splitViewController:willHideViewController:withBarButtonItem:forPopoverController:

splitViewController:willShowViewController:invalidatingBarButtonItem:

委托(delegate)(在本例中为详细 View Controller )永远不会被调用。

如果在播放全屏视频时将设备旋转到横向,关闭电影播放器​​会导致显示细节 View Controller ,该 Controller 保留其以前的条形按钮项以在弹出窗口中绘制主视图 Controller (尽管点击按钮不会产生任何 Action )。在应该绘制主视图 Controller 的地方,只存在一个黑色区域。在详细 View Controller 中向右滑动将滑出覆盖黑色区域的主视图 Controller ,但这仍然作为弹出窗口而不是持久 View 存在。

如果在播放全屏视频时将设备旋转到纵向,则关闭电影播放器​​会导致显示细节 View Controller ,该 Controller 缺少用于在弹出窗口中绘制主视图 Controller 的条形按钮项。细节 View Controller 具有正确的宽度,主视图 Controller 不可见,因此除了缺少条形按钮项外,细节 View 的外观几乎与预期的一样。

在这两种情况下,在出现不正确的 View 后手动旋转设备将恢复正常的应用程序功能。然而,依靠用户旋转(或双旋转)设备来修复绘图问题显然是 Not Acceptable 。

有什么方法可以确保 Split View Controller 在其所有子项都消失在模态电影播放器​​后面时意识到设备旋转?

最佳答案

答案是由用户 SamuraiZack 在 Apple Developer 论坛上提出的。在 UISplitViewController 的委托(delegate)中,强制重新布局 viewWillAppear 中的 Split View Controller :

[self.splitViewController.view setNeedsLayout];
[self.splitViewController.view layoutIfNeeded];

原文回复可见Apple Developer forums .

关于ios6 - 当模态电影播放器​​覆盖时,UISplitViewController 无法识别设备旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16672608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com