Моя реализация контроллера корневого представления supportedInterfaceOrientations
почти всегда возвращает UIInterfaceOrientationMaskAll
, однако есть один крайний случай, когда он возвращает UIInterfaceOrientationMaskLandscape
.
Это работает, если пользователь поворачивает устройство. Однако, если устройство удерживается в портретном режиме, метод supportedInterfaceOrientations
никогда не вызывается, если пользователь не вручную вращает устройство.
Как я могу программно сообщить системе о том, что возвращаемое значение этого метода изменилось?
В соответствии с документацией мне кажется, что я могу вызвать [UIViewController attemptRotationToDeviceOrientation]
, но это не имеет никакого эффекта (supportedInterfaceOrientations
никогда не вызывается и экран не вращается).
Я нашел различные обходные пути, которые другие опубликовали, чтобы попытаться решить эту проблему, но ни один из них не работает в моих тестах. Я подозреваю, что они, возможно, работали в iOS 5.0, но не iOS 6.0.
Я возвращаю YES
в корневом представлении контроллера shouldAutorotate
.