An Object that manages views and models, executing high-level code that deals with the major functionality of the app. Executes API calls. Executes transitions. Ultimate source of authority in app.
Represented by UIViewController in iOS; in order to realize custom functionality developer must subclass, as each custom controller must react differently to different events based on its purpose and views. This consists of two steps:
Each controller has a view property. The screen is ultimately constructed out of all the views the developer adds as subviews to this view through dragging and dropping (or code) in InterfaceBuilder. As such, each controller maintains a tree of subviews that interact dynamically at runtime.