iOS - UITableView делегат и источник данных в дизайне MVP - PullRequest
1 голос
/ 27 апреля 2019

Я пытаюсь реализовать UITableViewController, используя Model-View-Presenter.Поскольку я новичок в этой концепции, меня очень смущает, как отделить UITableView's протоколы источников данных от UIViewController.

. Многие статьи соглашаются с идеей, что View + Viewcontroller должен быть тупым, и учитывают толькоо пользовательских интерфейсах и их макетах.С другой стороны, Presenter должен быть посредником между представлением и моделью, а также реализовывать логику, но они заявили, что не включают UIKit, так как он напрямую не манипулирует UI.И вот тут-то и возникает моя путаница.

Когда мы реализуем UITableView, нам нужно реализовать два протокола: UITableViewDelegate и UITableViewDataSource, особенно источник данных.

Я предполагаю, что делегат принадлежитПросмотр части и передача событий в Presenter при получении действия пользователя.

Однако для реализации UITableViewDataSource у нас должна быть модель, которую использует табличное представление.При этом я могу думать только о двух способах каким-либо образом вписаться в MVP.

  1. Передать значение модели в UITableView из Presenter и сделать его доступным только для чтения в представлении.ради источника данных (например, создать строку для определенного индекса).Но потом я думаю, что это нарушает концепцию MVP, поскольку значением модели является прямой доступ через View.

  2. Пусть источник данных - презентатор.Но поскольку Presenter не должен импортировать UIKit, я думаю, что импорт UIKit и реализация UITableViewDatasource также нарушает концепцию MVP.Если кто-то хорошо знает эту концепцию, пожалуйста, поделитесь своими знаниями.Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...