В MVVM + Coordinator, как работать с подвидом?

Я работаю над проектом iOS MVVM + Coordinator/RxSwift (не swiftUI).

В GroundViewController на экране есть несколько элементов, и пользователь может нажать на любой элемент, чтобы вызвать подробный вид этого элемента. Подробное представление появится после нажатия на элемент, а когда пользователь коснется другого элемента, подробное представление выскользнет, ​​а затем снова появится с обновленной информацией. detailView имеет половину размера экрана, пользователь также может нажать на пустое место на GroundViewController, чтобы закрыть подробный вид (выдвижная анимация). (Таким образом, будет только один подробный вид)

Я решил сделать это подробное представление в виде UIView, у которого будет собственный координатор и ViewModel, и который будет добавлен в GroundViewControll.view. Но теперь я не понимаю, как общаться между ними или потоком событий.

Вопрос: В шаблоне MVVM/Координатор правильно ли сделать этот поток следующим образом:

groundViewController (receive a tap on the object) - > 
groundViewModel - >
groundCoordinator (creat and pass itemID ) - > 
detailedViewCoordinator (creat) - > 
detailedViewModel and detialedView

И кто должен отвечать за анимацию скольжения в detialedView?

GroundCoordinator должен отвечать за отображение деталей и их отбрасывание. Вы должны передать маршрут координатора в detailView, который запускает другую деталь, но сначала закрывает текущую деталь.

davidev 12.12.2020 12:03

Итак, когда виден подробный вид, вы все еще можете видеть и взаимодействовать с элементами на виде сверху?

Daniel T. 12.12.2020 12:15

@ДэниелТ. Ты прав. Это одна из причин, по которой я выбираю UIView вместо UIViewController. Я только что обновил вопрос, чтобы сделать его более понятным.

Dan Dan 12.12.2020 12:41
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
3
450
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Когда наземный вид получает касание, он сообщает об этом модели наземного вида.

  1. Модель вида с земли сообщает наземному координатору.
  2. Наземный координатор приказывает текущему координатору деталей (если он есть) уволиться.
  3. Текущий координатор деталей закрывает свое представление.
  4. Наземный координатор создает нового координатора деталей.
  5. Наземный координатор приказывает новому подробному координатору представиться.
  6. Новый координатор деталей создает модель вида детали и детализацию. вид. Он передает модель подробного представления подробному виду.
  7. Детальный координатор представляет подробный вид.

Существуют некоторые различия в том, когда именно создаются и уничтожаются элементы, но приведенная выше общая идея.

И кто должен отвечать за анимацию скольжения /trigger detialedView?

Dan Dan 12.12.2020 21:43

Детальный координатор запускает его, контроллер представления выполняет его.

Daniel T. 12.12.2020 22:20

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