我有一个 iPad 应用程序可以正常工作,但在启动期间出现了一个奇怪的问题。我已经阅读了几个关于方向的问题和答案,但这仍然让我很难过。
根视图控制器是一个带有 3 个选项卡的 UITabBarController。其中两个选项卡具有自定义视图控制器(一个基于 UIViewController,另一个基于 UITableViewController)并且都存在此启动方向问题。第三个选项卡是嵌入在 UINavigationController 中的自定义 UITableViewController。
好的,这就是问题所在。如果我以纵向启动应用程序,一切正常。如果我以横向启动它,则第三个选项卡可以完美运行。但是,前 2 个选项卡以纵向显示,即使:
- 状态栏方向正确显示为横向(横跨屏幕)。
- 标签栏视图正确显示为横向,标签居中。
- 对于所有方向的 shouldAutorotateToInterfaceOrientation,所有视图都返回 YES。
如果我在视图控制器的 viewWillAppear 中调用 [self interfaceOrientation] 或 [[UIApplication sharedApplication] statusBarOrientation],那么第三个选项卡的视图控制器报告 3(横向),但前两个视图控制器报告 1(纵向),即使状态栏清晰景观!
如果我将 iPad 旋转为纵向并返回横向,则所有 3 个选项卡的视图都正确旋转(并且上述方法按预期返回 3)。
此外,如果我点击任何其他选项卡,然后返回选项卡 #1 或 #2,那么它们现在将正确旋转,即使没有旋转 iPad 本身!
我错过了什么?