如何在一开始就检测到iPad的interfaceRotation?

jow*_*wie 6 objective-c statusbar viewdidload ipad uiinterfaceorientation

我在第一个UIViewController初始化(在代码中)让我的iPad应用程序检测到它的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;
}
Run Code Online (Sandbox Code Playgroud)

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

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

即使在横向模式下也会追踪1.

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

谢谢 :)

:-Joe

jow*_*wie 2

这就是答案......有点:(来自Apple开发论坛):......“应用程序总是加载,就好像设备是纵向的,然后如果设备确实是横向的,应用程序会被告知设备已经旋转这样做是为了让笔尖和代码只需要在一个方向上创建其 UI。否则可能需要为每个笔尖有两个 UI 布局。” .... 这不是我想要的答案,但不幸的是,这就是 iOS 的工作原理!