Как временно заблокировать ориентацию iPad / iPhone - PullRequest
6 голосов
/ 18 июня 2010

В определенный момент в моем приложении я хотел бы временно отключить функцию поворота - эффективно «заблокировать» ориентацию в коде, аналогично тому, что аппаратный тумблер блокировки выполняет на iPad в аппаратном обеспечении.

В настоящее время я делаю:

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]

и, когда я закончу, я звоню:

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]

Хотя все это, кажется, работает, документация API указывает, что всегда должно быть begin , за которым следует end - и я делаю это по сути наоборот.Существует ли более подходящий API для обработки «ориентации замка»?

1 Ответ

10 голосов
/ 18 июня 2010

Я думаю, что это так же просто, как не реагировать на изменения ориентации вашего контроллера.Вы можете условно вернуть true или false в зависимости от параметров, которые вы передаете, вам не всегда нужно возвращать true.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (rand()%2 == 0) { // evaluate if I should allow rotate
      return YES;
    } else {
      return NO;
    }
}
...