Какова лучшая практика: несколько UIViews или несколько UIViewControllers

Я планирую разработать приложение для проверки списка, состоящее из нескольких страниц. На каждой странице будет отображаться список простых вопросов "Да / Нет" и кнопка "Далее" в нижней части страницы.

С точки зрения дизайна приложения я вижу два варианта

  1. Один UIViewController со стеком полных страниц UIViews (слоистых, z-index). Переключаясь со страницы 1 на 2 я буду использовать sendSubviewToBack

  2. Один UIViewController за страницу Переключаясь со страницы 1 на 2, я представлю новый ViewController.

Вопросы: каковы плюсы и минусы этих двух подходов. Любой другой вариант, который я видел? Каковы ваши впечатления, предложения?

3 ответа

Решение

Apple выбрала один контроллер представления на страницу для реализации той же идеи. Это может быть частично, чтобы максимизировать общность - разные пользователи UIPageViewController очевидно, будут разные потребности. Но другое соображение - это память; если у вас есть несколько десятков страниц в подходе с несколькими подпредставлениями, у вас будет несколько десятков полностраничных подпредставлений, и это быстрый способ использовать гораздо больше памяти, чем вам нужно в любой момент времени.

Если вы используете один контроллер представления и несколько подпредставлений, рассмотрите возможность создания подпредставлений только по мере необходимости и удаления ненужных из иерархии представлений. Действительно, поскольку кажется, что все ваши страницы используют один и тот же формат (контрольный список), трудно понять, почему вам когда-либо понадобилось больше, чем одно представление для страниц. Когда пользователь выбирает другую страницу, вы просто даете представлению новый набор данных для рисования.

Я думаю, это зависит от того, что вы собираетесь делать со своими взглядами. Если оба имеют одинаковое поведение с данными, я бы использовал только один UIViewController, Если вам нужно сделать больше и разные процедуры, я бы использовал два UIViewController,

Использование двух также облегчает красивый переход (обрабатывается iOS) между ними. Если вы используете один, может быть, вы должны использовать UIScrollView и добавьте два вида внутри и прокрутите программно.

И еще один способ сделать это - использовать UITableView чтобы показать все данные в одном представлении.

Предполагая, что вы знаете, как писать хороший код (многократное использование представлений / контроллеров представлений), они должны иметь одинаковые плюсы и минусы.

Один профи в пользу UIViewController подход заключается в том, что это, скорее всего, приведет к более чистому коду. Вы также можете просмотреть события жизненного цикла, такие как viewDidLoad, viewWillAppear, viewDidAppearи т.д., которые дают вам более четкое представление о том, что происходит.

Другие вопросы по тегам