iPhone横向导航返回动作显示垂直视图过渡?

Posted

技术标签:

【中文标题】iPhone横向导航返回动作显示垂直视图过渡?【英文标题】:iPhone landscape navigation back action shows vertical view transition? 【发布时间】:2010-06-01 02:48:08 【问题描述】:

我有一个常规的 UINavigationController 并将一系列 UIViewController 推入堆栈。 push 控制器的视图转换是水平动画转换: [self.navigationController pushViewController:controller animated:YES];

但是,当我按下导航栏上的返回按钮时,视图转换动画是垂直的(垂直下拉前一个控制器/视图)。

我似乎没有找到任何方法来使这个水平。这仅在横向模式下发生。纵向模式的过渡都是水平翻转过渡。

任何人都可以对此有所了解吗?

谢谢

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。当我按下返回到第一个视图时,我看到了一个垂直动画而不是正常的水平动画。

我根据 Apple 的 NavBar 示例代码找到了答案。我编辑了示例代码以将“shouldAutorotateToInterfaceOrientation”添加到所有视图控制器,并使其返回 YES。

当我运行它时,我注意到按下“返回”时使用了正确的动画。

修复:

您似乎需要在导航控制器中使用自己的子类 UIViewController,并添加 shouldAutorotateToInterfaceOrientation。大概是默认的 UIViewController 没有返回正确的方向,所以使用了错误的动画。

背景:

我检查了我的代码和 Apple 的代码之间的所有差异,发现我的导航控制器是 UINavigationController 的子类,我在其中执行所有工作。默认情况下,IB 已经在其中添加了一个 UIViewController,我就不管它了。我注意到 NavBar 示例代码有自己的类集 (MainViewController)。所以我让 Xcode 创建了一个没有 xib 的新 UIViewController 子类,然后在 IB 的 Identity 面板的 Class 选项中设置它。

我希望这是有道理的并有所帮助!

【讨论】:

是的,我遇到了同样的问题,我将我的 UIViewController 子类化并添加了该功能,它可以正常工作!!非常感谢!

以上是关于iPhone横向导航返回动作显示垂直视图过渡?的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序更改为横向模式时,导航栏显示两次

iOS - 在横向显示一个很长的垂直堆栈视图

故事板转场覆盖 iPhone 4 和 5 上的垂直过渡

Flutter:从网格视图横向滚动的列表视图过渡

在具有交互式过渡的导航控制器中推送视图控制器

iPhone仅在第一页隐藏导航栏