briahas, ну мой проект выглядит так: есть Коллекшон Вью (первый контроллер), в котором отображаются ячейки с информацией. При нажатии на ячейку появляется всплывающее окно (второй контроллер), в котором информация о ячейке в более подробном виде (представлена вся информация об объекте). И в этом самом всплывающем окне есть кнопка, которая отправит на третий контроллер, в котором можно отредактировать информацию о выбранной ячейке. При нажатии на кнопку "Назад" пользователь возвращается в Коллекшон Вью, в котором все еще "висит" всплывающее окно с выбранным объектом. И вот в этом всплывающем окне обновленная информация должна отобразиться (значения в лейблах должны обновиться). Ну и там может кое что измениться в ячейке самой (ячейка принадлежит первому контроллеру (цвет текста ячейки поменяться)), если были изменены некоторые параметры.
Структурой? Я использую CoreData. И фактически моя модель - это классы, унаследованные от NSManagedObject. Вообще я слышал, что реализации MVVM бывают разные. А вариант с передачей модели я слышу впервые )
Спасибо за развернутый ответ! "куда View может засунуть свой байндинг." Можете описать как примерно это сделать? Для обновления коллекции я использую библиотеку Differ, оттуда и взялся метод self.collectionView.animateItemAndSectionChanges(oldData, newData), который явно вызывается при удалении ячейки коллекции.