Usually I create a NavigationController object that has information about my UINavigationController and my view controllers. If you give each of your VC a link to such an object, or make it single, then it will be able to handle things like this for you.
There is nothing wrong with embedding navigation logic in controllers, but this can complicate their work when they know about all the other controllers. The encapsulating navigation logic in the shared object simplifies the understanding and support of your application.
Ymmv
source share