В моем приложении большинство представлений имеют основные отличия в дизайне интерфейса при использовании на небольшом устройстве (например, портфолио iPhone) и большом (например, iPad в полноэкранном режиме). Базовая архитектура остается неизменной, но каждый контроллер View должен отображать очень отличающийся набор элементов интерфейса.Как заменить контроллеры представлений на основе изменения класса размера в iOS 9?
Я могу реагировать на изменения размера в Interface Builder, путем установки и удаления элементов и ограничений автоматического компоновки в соответствии с классом размера, но это было бы чрезвычайно громоздким и хрупким.
В уе старых времен (~ 2014), совет от Apple было:
Если вы хотите представить одни и те же данные по-разному в зависимости от того является устройство в портретной ориентации или ландшафтном способ сделать это использует два отдельных контроллера. Один контроллер просмотра должен управлять отображением данных в первичной ориентации (обычно портрет), а другой управляет отображением данных в альтернативной ориентации.
Несмотря на появление Размер классов, это кажется мне еще лучшее решение для моей конкретной конструкции (не забывая брать классы размера и сплит-вид, слайд-в на счет.)
Вопрос 1: при чем в моем приложении следует определить изменения признаков?
Вопрос 2: (предположим, что я загрузил альтернативный контроллер представлений из раскадровки) в ответ на изменение признака, как лучше всего переходить/представлять альтернативный контроллер представления?
Я задаю тот же вопрос, заданный здесь: Adaptive swapping of View Controllers in response to Size Class Trait changes iOS 9
Потому что никто не ответил на первоначальный вопрос.
Спасибо за ваш ответ Аарон. Я забыл упомянуть одно. Мой взгляд на iPad против одного и того же представления на iPhone не имеет общих элементов пользовательского интерфейса. Это совершенно другое мнение. – user3158704
В этом случае это звучит так, как унифицированные раскадровки не будут работать. Но это также похоже, что это может быть запутанное приложение :) –