Я уверен, что вы не можете «заставить» вращение. Система решает, когда менять ориентацию устройства; таким образом, свойства ориентации по существу доступны только для чтения. Я изучал эту же проблему давным-давно, когда хотел убедиться, что определенный вид всегда отображается в одной ориентации.
В связи с этим большинство приложений позволяют всем их представлениям и контроллерам представлений работать в любой из ориентаций, поддерживаемых приложением. Я обнаружил, что попытка ограничить поведение некоторых представлений и контроллеров представлений в конечном итоге создает больше хлопот и может вызвать проблемы при переходе между представлениями и контроллерами представлений.
Код, который вы разместили, будет работать для вашего просмотра. Вы вообще не меняете ориентацию; ваш взгляд ведет себя так, как будто он вращается, рисуя повернутым способом. Я не уверен, можете ли вы сделать то же самое с панелью навигации или нет, но это стоит попробовать. Если вы можете управлять свойствами представления на панели навигации (это также UIView), то будет работать тот же шаблон, который вы используете для своего пользовательского представления.
Большинство приложений, которые хотят, чтобы представление было только в альбомной ориентации, в конечном итоге заставляют все приложение работать в альбомной ориентации. Например, Flight Control поддерживает только одну ориентацию. Таким образом, код рисования довольно прост; независимо от ориентации, просто нарисуйте вид и поверните его в ту ориентацию, которую он поддерживает (либо влево, либо вправо).
Дизайн вашего приложения не будет таким простым ... похоже, вы не разрабатываете полноэкранное приложение. Вам придется беспокоиться о правильной прорисовке панели навигации и строки состояния.