【问题标题】:Presenting transparent modal UIViewController on iPad iOS 7在 iPad iOS 7 上呈现透明模式 UIViewController
【发布时间】:2015-02-19 12:58:06
【问题描述】:

我有一个 iPad 应用程序,它支持所有方向,并有一个 UITabBarController 管理一组视图控制器。旋转在任何地方都按预期工作。请记住,我的 UITabBarController 是我的应用程序 UIWindow 的 .rootViewController

我现在从我的 UITabBarController 模态地呈现一个 UIViewController。它呈现得很好,状态栏会根据设备的方向移动。然而,我的 UIViewController 的视图框架永远不会改变(它总是纵向尺寸,不管它是如何呈现的)。

这在 iOS 8 上不是问题,我认为 UITabBarController 会自行处理模态控制器。我有什么遗漏吗?

奖励:最终这个 UIViewController 将是透明的,并显示它下面的应用程序。当我尝试这个并旋转我的设备时,没有一个常规视图控制器旋转。

【问题讨论】:

    标签: ios ipad


    【解决方案1】:

    但是,我的 UIViewController 的视图框架永远不会改变(它始终是纵向尺寸,不管它是如何呈现的)。

    这是意料之中的。在 iOS 7 中,旋转是通过对顶层视图控制器的视图应用变换来实现的。这种变换的应用不会改变框架,它保持纵向尺寸。在 iOS 8 中,旋转是在窗口级别实现的。

    奖励:最终这个 UIViewController 将是透明的,并显示它下面的应用程序。当我尝试这个并旋转我的设备时,没有一个常规视图控制器旋转。

    UIModalPresentationStyleFullscreen 演示样式会在演示者的视图被呈现的视图控制器覆盖时将其从窗口中移除。如果你修改呈现的视图控制器视图的 alpha,你只会在下面看到黑色。

    由于 iOS 7 中不存在 UIModalPresentationStyleOverFullscreen,因此您需要将 UIModalPresentationStyleCustom 与您自己的过渡动画器一起使用。不幸的是,带有可旋转视图控制器的自定义转换在 iOS 7 中非常存在问题。

    【讨论】:

    • 感谢您的回复。不知道为什么我之前没有想到这一点,但我最终放弃了模态表示技术,而只是选择了一个似乎工作得更好的子视图控制器系统。不过遗憾的是,这些问题一直持续到 iOS 7。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    • 2014-12-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多