Proper way of doing routing is a challenge for the iOS applications, the MV(X) patterns simply don’t address this issue.
iOS Architecture Patterns
Bohdan Orlov

Actually there is a way to handle the app routing using some MV(X), this pattern is called Coordinator Pattern it works very similar to the routing in VIPER pattern and is very useful when you combine it with MVVM and avoid a lot of boilerplate code of VIPER, I think use MVVM with coordinators is a powerful approach for our applications.