2010-05-18 5 views
2

После прочтения многих постов, я до сих пор не получил ключ, как решить эту проблему ...IPad ориентация запуск

Первый вид моего приложения является tableViewController. I override

(BOOL) shouldAutorotateToInterfaceOrientation: (UIInterfaceOrientation)interfaceOrientation 

и он всегда возвращает ДА.

Если я держу свой iPad вертикально под пейзажной ориентацией, он вращается сразу после запуска приложения. Однако, если я положил свою iPad на стол, даже если моя домашняя страница находится в альбомной ориентации, она запускается в протравной ориентации.

Так что, я думаю, проблема в том, как я могу получить ориентацию своей домашней страницы и запустить приложение с этой ориентацией?

+0

У меня была та же проблема, и это решает [IOS, ориентация 5 устройства] [1] [1]: HTTP : //stackoverflow.com/questions/9683658/notification-banner-on-ipad-displayed-upside-down-when-app-is-launching-landscap/11184749#11184749 – nikhilgohil11

ответ

1

У меня была эта проблема. Есть некоторые напуганные вещи, которые продолжаются с первым контроллером представления, который вы добавляете в окно, и какой бы ориентацией он ни был. Убедитесь в том, что вид контроллеры возвращают YES для ориентации, если вы хотите самое первый открыть с правой ориентацией

1

моего приложения OpenGL, но так, как я справилась с этим было использовать уведомление:

// Override to allow orientations other than the default portrait orientation. 
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    return YES; 
} 

// This is called right BEFORE the view is about to rotate. Here I'm using a notification message 
- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration { 

    if (UIInterfaceOrientationIsPortrait(toInterfaceOrientation)) { 
     NSNotification* notification = [NSNotification notificationWithName:@"orientationIsPortrait" object:self]; 
     [[NSNotificationCenter defaultCenter] postNotification:notification]; 
    } 
    else { 
     NSNotification* notification = [NSNotification notificationWithName:@"orientationIsLandscape" object:self]; 
     [[NSNotificationCenter defaultCenter] postNotification:notification]; 
    } 

} 

willRotateToInterfaceOrientation называется right ПЕРЕД тем, что фактически начинает вращать ориентацию.

Тогда в моем EAGLView initWithFrame: Я настроил наблюдателей ..

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewBecamePortrait:) name:@"orientationIsPortrait" object:nil]; 
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(viewBecameLandscape:) name:@"orientationIsLandscape" object:nil]; 

и в viewBecamePortrait и viewBecameLandscape я обрабатывать изменения программно.

0

При запуске приложения willRotateToInterfaceOrientation используется только в случае, если экран «Главная» в ландшафтном режиме. Таким образом, мы можем определить ориентацию, когда устройство «Face Up» или «Face Down». [UIDevice currentDevice]. Ориентация работа в случае, если устройство не параллельно земле.

0

Я использовал ориентацию STATUSBAR ориентировать свою openglview, как это:

UIDeviceOrientation orientation = [UIApplication sharedApplication].statusBarOrientation;  
NSLog(@"%s: orientation: %i", _cmd, (int)orientation); 

 Смежные вопросы

  • Нет связанных вопросов^_^