自动旋转、UIWebView 和 UITabBarController

2024-04-29

我有以下视图层次结构:

UITabBarController
 |
 UINavigationController
 |         |
 |         UIViewController (only supports Portrait rotation)
 |
 UINavigationController
 |         |
 |         UIViewController (only supports Portrait rotation)
 |
 UINavigationController
 |         |
 |         UIViewController (only supports Portrait rotation)
 |         |
 |         UIViewController (has UIWebView with movie in it)
 |
 UINavigationController
           |
           UIViewController (only supports Portrait rotation)

现在的问题是,当我显示包含电影的 UIWebView 并且用户按下“播放”时,全屏媒体播放器将按预期打开。但是,我无法旋转影片,因为父 UIViewController 仅支持纵向(我对此进行了测试)。当我为父视图控制器启用横向时,它可以工作,但在这种情况下,我遇到了用户切换选项卡同时仍处于横向模式的问题(另请参阅我昨天发布的这个问题:更改选项卡时忽略自动旋转 https://stackoverflow.com/questions/5301317/autorotate-ignored-when-changing-tabs

有人对如何解决这个问题有任何想法吗?一方面,我想让用户能够旋转视频,但另一方面,重写所有其他视图控制器以支持横向似乎需要付出太多努力才能获得优势。


考虑一种不同的方法:不要在整个选项卡控制器层次结构中将包含电影的 UIWebView 呈现为 UIViewController,这会让您陷入整个旋转问题,而是尝试用完全不同的 UIViewController 替换您的顶级视图控制器(UITabBarController) (包含 UIWebView)。

当您想要退出全屏电影模式时,请再次将 UITabBarController 恢复为顶级视图控制器。注意:做not当你进行切换时忘记删除“旧”视图控制器——当 UIWindow 有多个子视图时,它会变得非常不高兴,并且不会发送自动旋转消息等。

我见过应用程序在面临此类自动旋转障碍时使用类似的策略。

这个策略可能看起来有点“脱节”,你可能需要在切换的更精细方面做一些调整,但它值得一看。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

自动旋转、UIWebView 和 UITabBarController 的相关文章

随机推荐