UINavigationController is used to form a tree-like hierarchy of view controllers, which is known as a navigation stack.
From developers perspective:
You can connect independently made controller and get all the benefits of a free hierarchy manager and common UI presenter gratis. UINavigationController animates the transition to new controllers and provides the back functionality for you automatically. UINavigationControlleralso gives access to all the other controllers in the navigation stack which can help access to some functionality or data.