我发现了一些我无法在iOS应用中解释的奇怪行为。
我使用嵌入在UITabBarController子类中的标准UINavigationController。
当我在NavigationController上推送ViewController时,动画就可以了。但是当在Landscape中弹出ViewController时,弹出动画从屏幕顶部发生到下端,而不是预期的从右到左的标准行为。
更奇怪的是TabBar包含在动画过渡中,在纵向模式下也不是这样。
仅在iOS 5设备上发生这种情况,目前我还不知道为什么会这样。
答案 0 :(得分:9)
我们找到了解决方案。问题是第一个视图控制器实现shouldAutorotateToInterfaceOrientation
只允许UIInterfaceOrientationPortrait
的旋转 - 这并不明显,因为它实际上正确地旋转到任何(全局允许的)方向。
因此,此属性仅对推送和弹出行为产生影响。现在,两个视图控制器(第一个和正在推送的控制器)都使用shouldAutorotateToInterfaceOrientation
实现return YES;
。现在动画是正确的(从左到右,反之亦然,横向模式,而不是从右到左,在弹出时从上到下)。