iPhone风景导航后退动作显示垂直视图过渡?

时间:2010-06-01 02:48:08

标签: iphone view landscape transition

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

但是,当我按导航栏上的“返回”按钮时,视图过渡动画是垂直的(垂直向下移动前一个控制器/视图)。

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

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

由于

1 个答案:

答案 0 :(得分:6)

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

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

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

FIX:

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

背景:

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

我希望这有意义并且有所帮助!