Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.
Apple’s strategy for iOS development was to use the Model-View-Controller (MVC) division of labor. Views are what get displayed to users, while the model is the data that the app manages, or the engine of the app. The controller is the bridge between the model and the view. The controller, or in this case, view controller, manages the relationship between the view and the model. Why doesn’t the view do that instead? Well, the answer is quite simple: the view’s code would get messy and that design choice would tightly couple our views with the model, which is not a good practice.