我有同样的问题。当我按下返回到第一个视图时,我看到了垂直动画而不是正常的水平动画。
我根据 Apple 的 NavBar 示例代码找到了答案。我编辑了示例代码以将“shouldAutorotateToInterfaceOrientation”添加到所有视图控制器,并使其返回 YES。
当我运行它时,我注意到按下“返回”时使用了正确的动画。
使固定:
似乎您需要在导航控制器中使用自己的子类 UIViewController,并添加 shouldAutorotateToInterfaceOrientation。大概默认 UIViewController 没有返回正确的方向,因此使用了错误的动画。
背景:
我检查了我的代码和 Apple 代码之间的所有差异,发现我的导航控制器是 UINavigationController 的子类,我在其中执行所有工作。默认情况下,IB 已经在其中添加了一个 UIViewController,我就不管它了。我注意到 NavBar 示例代码有自己的类集 (MainViewController)。所以我让 Xcode 创建了一个没有 xib 的新 UIViewController 子类,然后在 IB 的 Identity 面板的 Class 选项中设置它。
我希望这是有道理的并有所帮助!