The following diagram shows the structure of the app:
The structure of the app
The table view controller, the delegate, and the data source
In iOS apps, data is often presented using a table view. Table views are highly optimized for performance; they are easy to use and to implement. We will use a table view for the list of to-do items.
A table view is usually represented by UITableViewController, which is also the data source and delegate for the table view. This often leads to a massive table view controller, because it is doing too much: presenting the view, navigating to other view controllers, and managing the presentation of the data in the table view.
Sometimes, it's a good idea to split up the responsibility...