iPhone 横向导航返回 Action 显示垂直 View 转换?

标签 iphone view landscape transition

我有一个常规的 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/

相关文章:

iphone - 在 objective-c /iOS 中将日期字符串转换为 NSDate

ios - 仅在旋转 ios swift 时在 uiviewcontroller 中制作视频播放器景观

iphone - 我多久可以在 App Store 上更新一次我的应用程序?

MySQL -> 如何在一个 View 中合并两个数据库

android - 60Hz 的动画是如何工作的?

ios - 如何在运行时增加堆栈 View 的特定 subview 的高度?

android - SlidingPaneLayout setCoveredFadeColor () 和 setSliderFadeColor()

ios - UIWebview [UIThreadSafeNode _responderForEditing] 崩溃

iphone - iOS 按住手势 + 点击

iphone - 在不使用标签的情况下在按钮操作方法中传递参数