title: How do you center the MKMapView map visually when a user location is known or changes?
body: <p>I have read and followed the instructions on <a href="https://stackoverflow.com/questions/2473706/how-do-i-zoom-an-mkmapview-to-the-users-current-location-without-cllocationmanage">How do I zoom an MKMapView to the users current location without CLLocationManager?</a></p>
  
  <p>However, while I do get the current user location, I am unable to actually make the map visually center there.</p>
  
  <p>For example, in the viewDidLoad function, how can I cause the map to center visually around the users known location?  I have pasted the code from CurrentLocation below (See the XXX comment in viewDidLoad</p>
  
  <pre><code>
  #import "MapViewController.h"
  #import "PlacemarkViewController.h"
  
  @implementation MapViewController
  
  @synthesize mapView, reverseGeocoder, getAddressButton;
  
  - (void)viewDidLoad
  {
      [super viewDidLoad];
  
      // XXX HERE: How can I cause self.mapView to actually recenter itself at self.mapview.userLocation.location?
  
  
      mapView.showsUserLocation = YES;
  }
  
  - (void)viewDidUnload
  {
      self.mapView = nil;
      self.getAddressButton = nil;
  }
  
  - (void)dealloc
  {
      [reverseGeocoder release];
      [mapView release];
      [getAddressButton release];
  
      [super dealloc];
  }
  
  - (IBAction)reverseGeocodeCurrentLocation
  {
      self.reverseGeocoder =
          [[[MKReverseGeocoder alloc] initWithCoordinate:mapView.userLocation.location.coordinate] autorelease];
      reverseGeocoder.delegate = self;
      [reverseGeocoder start];
  }
  
  - (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFailWithError:(NSError *)error
  {
      NSString *errorMessage = [error localizedDescription];
      UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Cannot obtain address."
                                                          message:errorMessage
                                                         delegate:nil
                                                cancelButtonTitle:@"OK"
                                                otherButtonTitles:nil];
      [alertView show];
      [alertView release];
  }
  
  - (void)reverseGeocoder:(MKReverseGeocoder *)geocoder didFindPlacemark:(MKPlacemark *)placemark
  {
      PlacemarkViewController *placemarkViewController =
          [[PlacemarkViewController alloc] initWithNibName:@"PlacemarkViewController" bundle:nil];
      placemarkViewController.placemark = placemark;
      [self presentModalViewController:placemarkViewController animated:YES];
  }
  
  - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation
  {
      // we have received our current location, so enable the "Get Current Address" button
      [getAddressButton setEnabled:YES];
  }
  
  @end
  </code></pre>