Какова лучшая практика: несколько UIViews или несколько UIViewControllers
Я планирую разработать приложение для проверки списка, состоящее из нескольких страниц. На каждой странице будет отображаться список простых вопросов "Да / Нет" и кнопка "Далее" в нижней части страницы.
С точки зрения дизайна приложения я вижу два варианта
Один
UIViewController
со стеком полных страниц UIViews (слоистых, z-index). Переключаясь со страницы 1 на 2 я буду использоватьsendSubviewToBack
Один
UIViewController
за страницу Переключаясь со страницы 1 на 2, я представлю новый ViewController.
Вопросы: каковы плюсы и минусы этих двух подходов. Любой другой вариант, который я видел? Каковы ваши впечатления, предложения?
3 ответа
Apple выбрала один контроллер представления на страницу для реализации той же идеи. Это может быть частично, чтобы максимизировать общность - разные пользователи UIPageViewController
очевидно, будут разные потребности. Но другое соображение - это память; если у вас есть несколько десятков страниц в подходе с несколькими подпредставлениями, у вас будет несколько десятков полностраничных подпредставлений, и это быстрый способ использовать гораздо больше памяти, чем вам нужно в любой момент времени.
Если вы используете один контроллер представления и несколько подпредставлений, рассмотрите возможность создания подпредставлений только по мере необходимости и удаления ненужных из иерархии представлений. Действительно, поскольку кажется, что все ваши страницы используют один и тот же формат (контрольный список), трудно понять, почему вам когда-либо понадобилось больше, чем одно представление для страниц. Когда пользователь выбирает другую страницу, вы просто даете представлению новый набор данных для рисования.
Я думаю, это зависит от того, что вы собираетесь делать со своими взглядами. Если оба имеют одинаковое поведение с данными, я бы использовал только один UIViewController
, Если вам нужно сделать больше и разные процедуры, я бы использовал два UIViewController
,
Использование двух также облегчает красивый переход (обрабатывается iOS) между ними. Если вы используете один, может быть, вы должны использовать UIScrollView
и добавьте два вида внутри и прокрутите программно.
И еще один способ сделать это - использовать UITableView
чтобы показать все данные в одном представлении.
Предполагая, что вы знаете, как писать хороший код (многократное использование представлений / контроллеров представлений), они должны иметь одинаковые плюсы и минусы.
Один профи в пользу UIViewController
подход заключается в том, что это, скорее всего, приведет к более чистому коду. Вы также можете просмотреть события жизненного цикла, такие как viewDidLoad
, viewWillAppear
, viewDidAppear
и т.д., которые дают вам более четкое представление о том, что происходит.