How to stop the viewForAnnotation method from overriding the default user location blue beacon in iOS

Check out the documentation here:

http://developer.apple.com/library/ios/#documentation/MapKit/Reference/MKMapViewDelegate_Protocol/MKMapViewDelegate/MKMapViewDelegate.html

As it states:

If the object in the annotation parameter is an instance of the MKUserLocation class, you can provide a custom view to denote the user’s location. To display the user’s location using the default system view, return nil.

So you can add a conditional to check for this:

if([annotation isKindOfClass: [MKUserLocation class]]) {
  return nil;
}