View controllers are the foundation of application’s internal structure. They perform key role in maintaining the app’s user interface and interactions between the user interface and underlying data. Every app will have atleast one view controller. UIViewController class defines methods and properties for managing views, transitions and coordination between other parts of app. We can subclass UIViewController and implement custom code to perform app specific behaviour.