iOS с помощью MVC

Вопрос:

Я новичок в iOS и пытаюсь понять, как лучше всего работать с MVC.

Моя форма регистрации имеет 15 полей (да, у меня есть все эти поля!), И я решил разделить ее на 3 логических экрана по 5 полей. Будет 1 модель пользователя. На третьем и последнем экране я буду обновлять базу данных. Мои вопросы таковы:

  1. Должен ли я создать отдельный контроллер просмотра для каждого представления? Все 3 представления собираются использовать одну и ту же модель. Мой ум подсказывает мне, что должен быть 1 контроллер для 1 модели, но опять же я не слишком уверен, как лучше всего сделать это для iOS.

  2. Если я создам 1 контроллер и несколько видов, то будут ли проблемы с нажатием кнопки «назад»? Как контроллер узнает, какое представление будет показано.

  3. Или мне нужно иметь 1 просмотр и несколько под-представлений с 1 контроллером?

Мои запросы выше могут показаться противоречивыми, потому что я смущен.

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

Заранее спасибо.

Лучший ответ:

У вас может быть 1 модель, которая будет хранить поля. Тогда у вас может быть 3 контроллера для каждого представления (поскольку вам может понадобиться выполнять проверки в зависимости от полей), которые, в свою очередь, будут заполнять поля в модели.

Помещение всего внутри UINavigationController позволит вам вернуться к кнопке.

Ответ №1

У меня будет один класс UIViewController, но используйте 3 экземпляра его, которые имеют 3 разных вида, по одному для каждого шага.

Когда пользователь будет вводить свою информацию в один контроллер, создайте новый контроллер и передайте ему модель. Новый контроллер должен иметь возможность определить, на каком этапе он находится, и отобразить соответствующее представление.

Ответ №2

У меня был бы один класс UIViewController с тремя представлениями, но как только пользователь вводит информацию для первого просмотра, появляется второе представление. Если информация в первом представлении неверна, она остается в первом представлении.

Оцените статью
TechArks.Ru
Добавить комментарий