Как я могу определить интерфейс iPad в начале? - PullRequest
6 голосов
/ 01 августа 2010

У меня проблемы с тем, чтобы приложение для iPad обнаружило его интерфейсOrientation в первом UIViewController, который я инициализировал (в коде).На самом деле, если я отслеживаю для application.statusBarOrientation, он тоже возвращает 1 (UIInterfaceOrientationPortrait), даже если я запустил в альбомной ориентации.

Если я отслеживаю self.interfaceOrientation в моем первом UIViewController, он остается равным 1, пока не дойдет до viewWillDisappear... К сожалению, уже слишком поздно!

Вот код (хотя особо не на что смотреть):

В моем приложении у меня есть следующее:

- (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, даже в ландшафтном режиме.

Есть идеи?В тупик!

Спасибо:)

: - Джо

Ответы [ 2 ]

2 голосов
/ 04 августа 2010

Вот ответ ... Отчасти: (из форумов Apple Dev): .... «Приложение всегда загружается, как если бы устройство находилось в вертикальной ориентации, а затем, если устройство действительно в горизонтальной ориентации, приложению сообщают, что устройство повернуто. Это делается для того, чтобы перья и код должны были создавать свой пользовательский интерфейс только в одной ориентации. В противном случае может потребоваться два макета пользовательского интерфейса для каждого пера. " .... это не тот ответ, который мне бы понравился, но вот как работает iOS, к сожалению!

0 голосов
/ 02 августа 2010

Что сообщает делегат приложения в applicationDidFinishLaunching?Потому что, если он сообщает правильное значение, вы всегда можете получить доступ к делегату, чтобы проверить ориентацию.

...