I highly recommend that you use a UINavigationController (perhaps like a ModalViewController), as it is designed to be used this way with a chain of subview controllers for each configuration step. Share one object on all view controllers to track user and voila progress!
You can use one UIViewController with various full-screen displays that are shown / hidden, but I really see no reason to do it this way: the UINavigationController will also feel familiar to your users where this might be a non-standard solution.
source
share