Как временно заблокировать ориентацию iPad/iPhone

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

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

[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications]

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

[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications]

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

6
задан Eric 7 October 2010 в 20:36
поделиться

1 ответ

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

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
    if (rand()%2 == 0) { // evaluate if I should allow rotate
      return YES;
    } else {
      return NO;
    }
}
10
ответ дан 10 December 2019 в 00:33
поделиться