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