Применение transform
не влияет на traitCollection
, так как коллекция признаков привязана к ориентации интерфейса контроллера представления, а ориентация интерфейса привязана к ориентации устройства.
Что вы можете попробовать сделать состоит в том, чтобы применить коллекцию признаков, которую вы хотите, на контроллере дочернего представления viewController
после того, как вы примените к нему преобразование, с помощью следующего кода:
let traitCollection = UITraitCollection(traitsFrom: [
viewController.traitCollection,
UITraitCollection(verticalSizeClass: .compact)
])
parentViewController.setOverrideTraitCollection(traitCollection, forChild: viewController)
parentViewController
вот контроллер представления, у которого есть ваш преобразование контроллера представления в его массив .children
.
Обычно это должно работать: parentViewController = viewController.navigationController
Если это не ваш случай и viewController
не имеет родителя, вы необходимо создать контроллер представления заполнителя и добавить viewController
в качестве его дочернего элемента.