iOS 6 中自动旋转的变化似乎让这变得异常困难,或者说不可能。他们似乎在推行这样的理念:子视图控制器不应覆盖其父视图控制器的自动旋转行为。这使得很难完成我想做的事情:
- 我有一个必须纵向显示的视图控制器。
- 它以模态方式推动另一个视图控制器,它是一个简单的图像查看器,但我希望这个视图控制器能够旋转到任何纵向或横向方向(出于明显的原因)
- 当子视图控制器被关闭时(无论其当前方向如何),父视图控制器应保持纵向
UIViewController 类参考中的相关 Apple 文档
在 iOS 6 中,您的应用程序支持应用程序的 Info.plist 文件中定义的界面方向。视图控制器可以重写supportedInterfaceOrientations方法来限制支持的方向列表。通常,系统仅在窗口的根视图控制器或呈现的填充整个屏幕的视图控制器上调用此方法;子视图控制器使用其父视图控制器为其提供的窗口部分,并且不再直接参与有关支持哪些旋转的决策。应用程序的方向蒙版和视图控制器的方向蒙版的交集用于确定视图控制器可以旋转到哪个方向。
我考虑过使用变换来模拟子视图控制器中的旋转,但老实说,我觉得应该有更好的方法,并且希望避免这种情况at all可能的。
似乎为了让任何子视图控制器支持界面方向,其父视图控制器(以模式或其他方式呈现)现在也必须支持该界面方向。
我在这里缺少一些简单的东西吗?这真像看上去那么可笑吗?
您可以子类化导航控制器并覆盖(NSUInteger)supportedInterfaceOrientations
方法。因此导航控制器将始终返回当前显示的视图控制器支持的任何内容。
如下所示(代码和想法未测试):
- (NSUInteger)supportedInterfaceOrientations {
return [self.presentedViewController supportedInterfaceOrientations];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)