How to update view in Swift MVVM?

There are two essential ideas in a well-designed MVVM: unidirectional data flow and weak reference to the view.

The flow of data in MVVM is unidirectional, the data was aroused from user or system event, and then it flows to viewModel, model, and view at last. You can implement the unidirectional by getting rid of having a controller reference in ViewModel. But how to update view without strong reference…