I have a UINavigationController and I have seperate UIViews that I switch between using a UISegmentControl. On switching the views, I add the view as a subview to my navigat
One possibility, if you are not averse to singletons, is to make your product's UINavigationController object be a singleton, accessible from (for example) your application delegate.
You would invoke it thus:
[[((MyApplicationDelegate*)[UIApplication delegate]) navController]
pushViewController: viewControllerToPush animated: YES];
where within MyApplicationDelegate, navController returns the singleton object.