2010-06-01 56 views
3

我有一个常规的UINavigationController,我将一系列UIViewController推入堆栈。推动控制器的视图转换是水平动画转换: [self.navigationController pushViewController:controller animated:YES];iPhone风景导航后退动作显示垂直视图转换?

但是,当我按下导航栏上的后退按钮时,视图过渡动画是垂直的(垂直放下前一个控制器/视图)。

我似乎没有找到任何方法来使这个水平。这只发生在风景模式。肖像模式转换全部发生为水平翻转转换。

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

谢谢

回答

6

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

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

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

FIX:

好像你需要导航控制器内使用自己的子类的UIViewController,并添加shouldAutorotateToInterfaceOrientation。据推测,默认的UIViewController没有返回正确的方向,所以使用了错误的动画。

背景:

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

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

+0

是的我有同样的问题,我subclassed我的UIViewController并添加了该功能,它的工作原理!万分感谢! – redDragonzz 2012-04-02 18:12:20