2012-04-24 3 views
0

iPhone имеет блокировку ориентации только для портрета. Поэтому я добавил кнопку блокировки ориентации ландшафта в свой пользовательский интерфейс, который устанавливает переменную landscape_orientation_locked в YES или NO. Тогда в shouldAutorotateToInterfaceOrientation: я в принципе сделать следующее:Программный замок для ориентации на iPhone iPhone

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { 
    if (landscape_orientation_locked) 
    return (UIInterfaceOrientationIsLandscape(interfaceOrientation)); 

    return YES; 
} 

Это работает отлично, за исключением одного случая. Когда я поворачиваю iPhone в альбомную ориентацию, переключая кнопку блокировки ориентации, поворачивайте iPhone в портретную ориентацию и снова нажмите кнопку. Ориентация интерфейса не изменится с ландшафта на портрет. IPhone должен быть превращен в ландшафтную, а затем портретную ориентацию, чтобы вызвать вращение интерфейса.

Итак, мой вопрос: могу ли я как-то «заставить» iPhone пересмотреть свою текущую ориентацию?

ответ

0

Представление, а затем отклонение мошеннического диспетчера режима просмотра должно принудительно провести проверку ориентации.

EDIT: Нашел вопрос, где я впервые прочитал о том, что:

Is there a documented way to set the iPhone orientation?

+0

Я читал о том, что трюк, а также. К сожалению, это не работает (больше?). – Max

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