我遇到问题让我的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。
有什么想法吗?难倒在这里!
谢谢:)
: - 乔
答案 0 :(得分:2)
这是答案......有点:(来自Apple Dev论坛):.... “应用程序总是被加载,好像设备是纵向的,然后如果设备真的是风景,应用程序被告知设备已经旋转。这样做是为了使笔尖和代码只需要在一个方向创建他们的UI。否则可能需要为每个笔尖设置两个UI布局。“ ....这不是我喜欢的答案,但不幸的是iOS的运作方式!
答案 1 :(得分:0)
应用委托代表在applicationDidFinishLaunching
中报告的内容是什么?因为如果它报告了正确的值,您始终可以访问该委托以检查方向。