I have an iPhone UI consisting of a couple of dozen screens that are more or less hierarchical, logically speaking, but with occasional long jumps across or up and down the tree -- for instance, from the top-level screen, there's a button that will take you to a couple of different places fairly deep in the hierarchy depending on what state the application's in; and there are "gallery" and "settings" screens (with their own sub-hierarchies) that can be accessed from anywhere in the app.
Right now I'm using a UINavigationController with no navigation bar and keeping the hierarchy hidden and implicit, but there are places where it would be nice to make it explicit -- and yet I think it's just going to confuse the user if there's a back-navigation button one or two places in the app but nowhere else, or if certain screens appear "below" all kinds of different places.
Are there any guidelines, or better yet examples, of good, iPhone-like UIs for such an app?