Я пытаюсь реализовать UITableViewController
, используя Model-View-Presenter.Поскольку я новичок в этой концепции, меня очень смущает, как отделить UITableView's
протоколы источников данных от UIViewController
.
. Многие статьи соглашаются с идеей, что View + Viewcontroller должен быть тупым, и учитывают толькоо пользовательских интерфейсах и их макетах.С другой стороны, Presenter должен быть посредником между представлением и моделью, а также реализовывать логику, но они заявили, что не включают UIKit, так как он напрямую не манипулирует UI.И вот тут-то и возникает моя путаница.
Когда мы реализуем UITableView, нам нужно реализовать два протокола: UITableViewDelegate
и UITableViewDataSource
, особенно источник данных.
Я предполагаю, что делегат принадлежитПросмотр части и передача событий в Presenter при получении действия пользователя.
Однако для реализации UITableViewDataSource
у нас должна быть модель, которую использует табличное представление.При этом я могу думать только о двух способах каким-либо образом вписаться в MVP.
Передать значение модели в UITableView
из Presenter и сделать его доступным только для чтения в представлении.ради источника данных (например, создать строку для определенного индекса).Но потом я думаю, что это нарушает концепцию MVP, поскольку значением модели является прямой доступ через View.
Пусть источник данных - презентатор.Но поскольку Presenter не должен импортировать UIKit, я думаю, что импорт UIKit и реализация UITableViewDatasource также нарушает концепцию MVP.Если кто-то хорошо знает эту концепцию, пожалуйста, поделитесь своими знаниями.Заранее спасибо!