6

我在让我的 iPad 应用程序在我初始化的第一个 UIViewController(在代码中)中检测其 interfaceOrientation 时遇到问题。事实上,如果我跟踪 application.statusBarOrientation,即使我在横向启动,它也会返回 1 (UIInterfaceOrientationPortrait)。

如果我在我的第一个 UIViewController 中跟踪 self.interfaceOrientation,它会一直保持为 1,直到它到达 viewWillDisappear ......不幸的是为时已晚!

这是一些代码(即使没有太多可看的):

在我的 appDelegate 我有这个:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{    
     // show loading screen first
     [window addSubview:loadingScreenViewController.view];
     [window makeKeyAndVisible];

     NSLog(@"applicationDidBecomeActive:statusBarOrientation = %d", application.statusBarOrientation);
     return YES;
}

跟踪 1(纵向),即使我清楚地看到状态栏是横向的......并且在第一个视图控制器中我有这个:

- (void)viewDidLoad
{
    [super viewDidLoad];
     NSLog(@"self.interfaceOrientation = %d", self.interfaceOrientation);
}

即使在横向模式下,它也会跟踪 1。

有任何想法吗?难倒这里!

谢谢 :)

:-乔

4

2 回答 2

2

这里是答案......有点:(来自Apple Dev Forums):......“应用程序总是像设备是纵向的一样加载,然后如果设备是真正的横向应用程序被告知设备已经旋转. 这样做是为了让 nib 和代码只需要在一个方向上创建它们的 UI。否则,每个 nib 可能需要有两个 UI 布局。.... 这不是我想要的答案,但不幸的是 iOS 就是这样工作的!

于 2010-08-04T15:35:42.680 回答
0

应用程序委托报告applicationDidFinishLaunching什么?因为如果它报告了正确的值,您可以随时访问委托来检查方向。

于 2010-08-02T07:37:25.887 回答