我正在开发一款iOS应用的故事板。我正处于确保横向在整个应用程序中正常工作的阶段。我还有一个问题就是:如果手机是横向模式并且我从堆栈中弹出一个视图控制器,通过后退按钮,动画会通过向下滑动而不是右边的一般方法弹出。
以下是应用结构:
1 UITabBarController
2 UINavigationController
3 UITableViewController
2 UINavigationController
3 UIViewController
在第一个表(具有UITableViewController
的表)上,后向动画按预期工作(向右移动),但在第二个选项卡上,动画无法正常工作。所有的推送和弹出都是通过故事板处理的,而不是代码。
有什么想法吗?
答案 0 :(得分:1)
模态视图控制器具有4种基本动画样式,并且它们都不像导航控制器推送那样。所以很可能你的segue定义不正确或者它们是从代码中“呈现”的。
确保故事板segue是“推”而不是模态。您可以在Interface Builder中查看 - 转到故事板并单击segue连接线。在识别出segue名称的对象检查器中,在它下面应该说“推”而不是“模态”。如果它显示“模态”,则将其更改为“推”,动画应自行纠正。
还要在你的代码中确保使用preformSeque ...方法来显示下一个视图控制器,而不是像presentModalViewController那样做....
答案 1 :(得分:1)
我的错误!
我忘了更新所有视图控制器中的shouldAutorotateToInterfaceOrientation
方法。这是原始的:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
这是允许旋转到所有方向的应该是什么:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
复杂的是视图已经转向景观,因为超级视图确实正确更新了旋转代码,但子视图没有。