2013-11-26 2 views
2

Наше приложение поддерживает только ландшафтный режим и нуждается в поддержке iOS5.1 & 6.0 & 7.0. Bynow, мы установили RootViewController и BaseSDK: 7,0 DeploymentTarget: 5,1AlertView не вращается в ios7?

Наше приложение работает отлично в прошивкой 5 и 6. ИОС Но в iOS7, когда alertview присутствует и пользователь поворот к портрету, alertview также поворачивается к potrait, что не происходит на iOS5 & 6. А также после того, как alertview отправился на портрет, он не поворачивается в пейзаж.

Примечание: Ориентация на MyController прекрасна. Он всегда поддерживает только Пейзаж.

+1

Где вы звоните предупреждающий сигнал зрения? Можем ли мы увидеть код? – Robert

+0

@Robert - (BOOL) shouldAutorotateToInterfaceOrientation (UIInterfaceOrientation) interfaceOrientation { , если (landScapeOnlyView) { возврата (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); } else if (openView) { \t возвращение ДА; } return NO; } Это код, который я использую для ориентации. – techashok

+0

У меня была аналогичная, но почти противоположная проблема - AlertView вращается, когда он не должен. Вопрос и решение (переключение вызова метода AlertView в 'ViewDidAppear') можно найти здесь: http://stackoverflow.com/questions/19833129/prevent-alertview-from-auto-rotating – Robert

ответ

2

Я решил проблему путем внедрения метода supportedInterfaceOrientations: Прежде я использовал только

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (landscapeOnly) { 
     return (interfaceOrientation == UIInterfaceOrientationLandscapeRight || interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
    } 
    else { 
     return YES; 
    } 
} 

Теперь я реализовал метод supportedInterfaceOrientations также наряду с этим. Потому что, когда появляется предупреждение, поддержкаInterfaceOrientations вызывается автоматически.

-(NSUInteger)supportedInterfaceOrientations{ 
    if (landscapeOnly) { 
     return ((1 << UIInterfaceOrientationLandscapeLeft) | (1 << UIInterfaceOrientationLandscapeRight)); 
    } 
    else{ 
     return ((1 << UIInterfaceOrientationLandscapeLeft) | (1 << UIInterfaceOrientationLandscapeRight) | (1 << UIInterfaceOrientationPortrait) | (1 << UIInterfaceOrientationPortraitUpsideDown)); 
    } 
} 

(1 < < UIInterfaceOrientationLandscapeLeft) для UIInterfaceOrientationMaskLandscape

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