Вы можете настроить навигационный контроллер и один основной вид. Затем вы можете использовать представление шаблона для портретных и ландшафтных макетов (2 дополнительных вида).
Вам необходимо настроить элементы управления на главном экране и убедиться, что каждый из них имеет уникальный тег. Ваше основное представление не будет использоваться, вместо этого вы скопируете элементы управления в два вида шаблона и настройте их на основе того, как вы хотите, чтобы каждый вид выглядел. Преимущество этого в каждом представлении сохранит свой тег, который станет очень важной частью этой реализации.
Для этого вы используете гибридный подход в отношении написания некоторого кода пользовательского интерфейса и использования Interface Builder. После установки двух шаблонов создайте уникальный идентификатор для каждого из них. Вам нужно будет написать некоторую логику для обработки представления и его подзонов. Рекурсивный метод для возврата их коллекции на основе выбранного вами шаблона.
Основная логика в реализации контроллера корневого представления должна будет проверить isPortrait и на основании этого вы захотите загрузить правильный вид на основе идентификатора.
Экспериментируйте с этой концепцией и посмотрите, не работает ли она для вас. Основные преимущества не использования двух отдельных представлений с уникальными элементами управления (а не общим подходом с одинаковыми тегами) заключается в том, что вы сохраняете доступ к своим исходным представлениям. Любые переменные экземпляра, которые вы определяете в контроллере представления, который указывает на текст, отмеченный, ярлык и т. Д., Продолжают делать это независимо от того, какой шаблон используется. Это поддерживает подход модели, представления, управления, поскольку структура данных остается неизменной.
Используя этот подход, вы все же можете максимально использовать конструктор интерфейса и компоновку шаблонов для каждого представления, сохраняя при этом гибкость при написании пользовательского пользовательского кода, если хотите. Использование только компоновщика интерфейсов может быть немного ограничено время от времени, и написание пользовательского кода на основе ориентации блокирует вас в немного утомительной работы.
Надеюсь, это поможет некоторым.
интересный подход. Попробуй это. Спасибо – Korbi
Что делать, если вы используете IBOutlets, они могут быть назначены только одному виду. – Paranaix
@Paranaix Я не совсем понимаю ваш комментарий. Первоначальный вопрос представляет собой требование наличия разных интерфейсов для ландшафтного и портретного режима. Если вы ищете другой макет для одного и того же интерфейса, это другая проблема. Может быть, вы должны задать совершенно новый вопрос. –