当按下后退按钮时,iOS 8屏幕滑动方向错误

时间:2014-09-23 22:55:35

标签: ios iphone uinavigationcontroller storyboard ios8

我的应用程序是为iOS7编写的,我正在尝试将其更新到iOS 8.我的应用程序配置为仅在Landscape Left和Landscape Right方向中工作。

对于iOS 8,我更改了导航屏幕的顺序,并将其中一个模态屏幕更改为推送过渡。在主屏幕上,我在UINavigationItem上有两个UIBarButtonItems。每个都有一个分配给它们的推送segue连接到不同的屏幕。

当应用程序正在运行并且其中一个UIBarButtonItems被点击时,通过segue关联的屏幕将按预期滑过主屏幕。后退按钮正常显示。点击后退按钮时会出现问题。屏幕不会像预期的那样向右滑动。

在运行iOS 7的iPhone 4上,无论设备是横向还是横向,都会向下滑动(朝向地面)。

在运行iOS 8的iPhone 6 Plus上,被叫屏幕快速旋转至Upside Down(顶部朝向主页按钮),然后滑到主页按钮侧。同样,手机朝向横向或横向正确方向的方式并不重要。

我已尝试设置preferredInterfaceOrientationForPresentation,shouldAutorotate为NO,并将supportedInterfaceOrientations设置为UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationLandscapeRight。似乎没有任何差别。

我的屏幕导航很简单,我没有使用任何自定义过渡。它完全通过标准推送段。

我需要屏幕"返回"转换再次正常工作。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

我终于发现了导致我的屏幕向错误方向滑动的原因。事实证明,覆盖UIViewController中的supportedInterfaceOrientations方法并返回UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationLandscapeLeft会混淆iOS 8(以及运行iOS 7的设备)的转换。这是在iOS 7中正常运行所必需的,但显然会在iOS 8中引起问题。因此,一旦我删除了代码,屏幕转换就会再次开始正常工作。