在iPad iOS 7上呈现透明模态UIViewController

时间:2015-02-18 23:14:50

标签: ios ipad

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

我现在从UITabBarController以模态方式呈现UIViewController。它呈现得很好,状态栏根据设备的方向移动。但是,我的UIViewController的视图框架永远不会改变(它始终是纵向尺寸,无论它是如何呈现的)。

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

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

1 个答案:

答案 0 :(得分:0)

  

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

这是预期的。在iOS 7中,通过将变换应用于顶级视图控制器的视图来实现旋转。此变换的应用不会改变框架,框架仍保持纵向尺寸。在iOS 8中,旋转是在窗口级别实现的。

  

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

UIModalPresentationStyleFullscreen演示样式在呈现视图控制器覆盖时从窗口中移除演示者的视图。如果您修改了所呈现的视图控制器视图的alpha,那么您只会在下方看到黑色。

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