Итак, я следовал следующему руководству по созданию пользовательских представлений, связанных с ориентациями устройств:
http://www.theappcodeblog.com/2011/03/30/orientation-change-tutorial-change-the-view-when-the-orientation-changes/
Чтобы подвести итог статьи, автор может создавать собственные представления для альбомной и портретной ориентаций, указывая на новый вид верхнего уровня в файле XIB при обнаружении поворота устройства.
Поэтому я взял сложную иерархию видов (множество кнопок, ползунки, виды внутри видов), продублировал все на верхнем уровне, чтобы создать альбомный вид. Затем созданы нестандартные аранжировки для ландшафтного вида. В методе, где мой код обнаруживает альбомную ориентацию, мой код указывает на вершину иерархии ландшафта и портрета при обнаружении портрета.
Это работает, за исключением того, что все IBOutlets (UIView, UIButton и т. Д.) В иерархии ландшафта все еще ссылаются на свои эквивалентные объекты в иерархии портретного представления. Я выполняю много специальной обработки этих элементов пользовательского интерфейса во время выполнения, поэтому мне требуются IBOutlets, а не только IBActions. Я обнаружил, что мои скопированные элементы пользовательского интерфейса в альбомной ориентации могут указывать на одни и те же IBActions, но они не могут делить IBOutlets с теми, которые находятся в иерархии портретов.
Должен ли я дублировать все объекты и чтобы мой код управлял всем (выяснил, какие объекты использовать)?