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

标签 ios iphone uinavigationcontroller storyboard ios8

我的应用程序是为 iOS7 编写的,我正在尝试将其更新到 iOS 8。我的应用程序配置为仅在横向左和横向右方向上工作。

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

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

在运行 iOS 7 的 iPhone 4 上,屏幕始终向下滑动(朝向地面),无论设备是横向向左还是横向向右。

在运行 iOS 8 的 iPhone 6 Plus 上,调用的屏幕快速旋转到上下颠倒(顶部朝向主页按钮),然后滑到主页按钮一侧。同样,手机是横向向左还是横向向右并不重要。

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

我的屏幕导航很简单,我没有使用任何自定义转换。这一切都是通过标准的推送转场。

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

非常感谢任何帮助!

最佳答案

我终于找到了导致我的屏幕滑动方向错误的原因。原来是重写UIViewController中的supportedInterfaceOrientations方法,返回UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationLandscapeLeft 混淆了 iOS 8 中的转换(以及运行 iOS 7 的设备)。这是在 iOS 7 中正常运行所必需的,但在 iOS 8 中显然会导致问题。所以一旦我删除了代码,屏幕转换又开始正常工作。

关于点击后退按钮时,iOS 8 屏幕滑动方向错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26005973/

相关文章:

iphone - 我需要让我的 UITabbar 滚动

php - 从移动设备上传图像文件

ios - 导航栏中的多个搜索栏

iphone - 如何访问在TabBarViewController中选择的ViewController

iOS - 在禁用模块错误时使用@import

iphone - Objective-C iPhone 开发 : MySQL connection

IOS map 套件对 TableView 的注释标注

ios - UINavigationController,强制堆栈

ios - 无法加载图表数据

ios - 如何使用 prepare for segue 传递 Firebase UID