Were you ever able to see the MapView, like at the end of Chapter 5? I can duplicate the black screen you are seeing by:
In the storyboard’s table of contents, under the Map Scene selecting the MapViewController(yellow icon with Map next to it).
Selecting the Identity Inspector in the right pane, and under the heading Custom Class clicking on the down arrow to reveal the drop down list, and selecting UIViewController.
If I run the app after doing that, then click on the Map icon in the TabBar, I see a black screen. The reason that occurs is because you need to associate the MapViewController class in your code with the generic UIViewController you dragged onto the storyboard. The way you do that is by revealing the drop down list in step 3 and choosing the name of the class in your code, i.e. MapViewController. Once you change the class to MapViewController, the loadView() function in your MapViewController class will get called when you click on the Map icon in the TabBar for the first time.
The instructions for opening up the Identity Inspector and selecting the proper class name from the drop down list are in the middle of p.91.
Maybe on your first try you deleted the whole MapViewController instead of just the view? Then, after you reassembled your storyboard, you never changed the class of the new generic UIViewController to MapViewController?
Some hints on code organization:
Function definitions and outlet declarations should to be indented. They should not be at the same indent level as
All your outlets should appear at the very top of the class definition–not scattered throughout your code.