1

我正在编写一个 iOS 应用程序的故事板。我正处于确保横向在整个应用程序中正常工作的阶段。我还有一个问题,那就是:如果手机是横向模式并且我从堆栈中弹出一个视图控制器,通过后退按钮,动画会通过向下滑动视图而不是向右滑动的一般方法弹出。

这是应用程序结构:

1 UITabBarController
   2 UINavigationController
      3 UITableViewController
   2 UINavigationController
      3UIViewController

在第一个表(带有 的表UITableViewController)上,后退动画按预期工作(向右移动),但在第二个选项卡上,动画无法正常工作。所有的推送和弹出都是通过故事板处理的,而不是代码。

有任何想法吗?

4

2 回答 2

1

我的错!

我忘了更新shouldAutorotateToInterfaceOrientation所有视图控制器中的方法。这是原文:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return (interfaceOrientation == UIInterfaceOrientationPortrait);
}

以下是允许旋转到所有方向的内容:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    return YES;
}


复杂之处在于视图已经旋转到横向,因为超级视图确实正确更新了旋转代码,但子视图没有。

于 2012-09-10T15:37:23.240 回答
1

模态视图控制器有 4 种基本动画样式,它们都不像导航控制器推送。因此,您的 segue 很可能定义不正确,或者它们是从代码中“呈现”的。

确保情节提要的 segue 是“推送”而不是模态的。您可以在 Interface Builder 中检查这一点 - 转到情节提要并单击 segue 连接线。在标识 segue 名称的对象检查器中,就在它下面应该说“push”而不是“modal”。如果它说“模态”,将其更改为“推”,动画应该会自行纠正。

还要确保在您的代码中使用 preformSeque ... 方法来显示下一个视图控制器,而不是执行类似 presentModalViewController ... 的操作。

于 2012-09-10T13:59:21.600 回答