Как отметил @ the4kman, единственный способ добиться этого - использовать преобразование вида:
view.transform = CGAffineTransform(rotationAngle: .pi / 2)
Но также и представление, которое должно быть преобразовано, должно быть внутренним. для которого вам нужно установить высоту, равную ширине суперпредставления , и ширину, равную высоте суперпредставления . И это должно быть по центру по вертикали и горизонтали .

Вы можете поддерживать все ориентации в своем приложении и отключать его только для
этот конкретный контроллер.
Реализация контроллера вида:
import UIKit
class PortraitController: UIViewController {
@IBOutlet weak var viewLandscaped: UIView!
override func viewDidLoad() {
super.viewDidLoad()
viewLandscaped.transform = CGAffineTransform(rotationAngle: .pi / 2)
}
override var supportedInterfaceOrientations : UIInterfaceOrientationMask {
return .portrait
}
}
Результаты:
