Try
this method of view swapping.
This lets you have multiple pages with any amount of buttons that point to pages in any other position. Additionally, because it's controlled by the overall view manager, you can easily have cross page variables and add/remove pages in ANY position without it having much overall effect on the program.
Individual pages can be self managed or managed in the global manager for whatever you chose. Buttons placed on the page can perform actions within the page alone or they can be used to reach any page in the program.
I think this is what you're looking for, if it isn't then I'm not sure.
In this method you have no primary view, you have a view controller and a bunch of pages. You're primary view is whichever page you chose to load up first.
Be aware this is a code only approach but it does work with the interface builder as well with some minor tweaking (I've tried it).