In this chapter, you created a new class, RestaurantItem, that conforms to the MKAnnotation protocol. Next, you created MapDataManager, a data manager that loads restaurant data from a .plist file and puts it into an array of RestaurantItem instances. You refactored both MapDataManager and ExploreDataManager to avoid redundant code. After that, you created MapViewController, a view controller for the Map screen, and configured it to display custom annotations. Next, you configured callout buttons in the custom annotations to display a Restaurant Detail screen. You created RestaurantDetailViewController, a view controller for the Restaurant Detail screen, and passed data to it from MapViewController. Finally, you cleaned up and organized your code to make it easier to read and maintain.
You now know how to create custom map annotations and add them to a map, how to use...