You should use container view controller to do this. You can create a new and custom one or subclass UINavigationController
or use it as is. That way you can keep all those VCs alive and provide transitions between them by accessing them with viewControllers
method.
You can find more information here. You can look at Implementing a Container View Controller section.
You should definitely look at that page.