我有一个常规的 UINavigationController,并将一系列 UIViewController 插入堆栈。推送 Controller 的 View 过渡是水平动画过渡: [self.navigationController PushViewController: Controller 动画:是];
但是,当我按导航栏上的“后退”按钮时, View 过渡动画是垂直的(垂直下拉前一个 Controller / View )。
我似乎没有找到任何方法使其水平。这种情况仅发生在横向模式下。纵向模式下的过渡全部发生为水平翻转过渡。
有人能解释一下吗?
谢谢
最佳答案
我也遇到了同样的问题。当我按回键进入第一个 View 时,我看到了垂直动画,而不是正常的水平动画。
我根据Apple的NavBar示例代码找到了答案。我编辑了示例代码,将“shouldAutorotateToInterfaceOrientation”添加到所有 View Controller ,并使其返回 YES。
当我运行它时,我注意到按“后退”时使用了正确的动画。
修复:
似乎您需要在导航 Controller 中使用自己的子类 UIViewController,并添加 shouldAutorotateToInterfaceOrientation。据推测,默认的 UIViewController 没有返回正确的方向,因此使用了错误的动画。
背景:
我检查了我的代码和苹果代码之间的所有差异,我发现我的导航 Controller 是 UINavigationController 的子类,我在其中执行所有工作。默认情况下,IB 在其中添加了一个 UIViewController,但我保留了它。我注意到 NavBar 示例代码有自己的类集(MainViewController)。所以我让 Xcode 创建一个没有 xib 的新 UIViewController 子类,然后在 IB 的 Identity 面板的 Class 选项中设置它。
我希望这是有意义的并且有帮助!
关于iPhone 横向导航返回 Action 显示垂直 View 转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2947038/