title: iOS Swift MapKit Custom Annotation
body: <p>I am having some trouble getting a custom annotation to load inside of my map view when I try to place a pin.</p>
  
  <pre><code>import UIKit
  import MapKit
  import CoreLocation
  class MapViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate{
  @IBAction func ReportBtn(sender: AnyObject) {
      //MARK: Report Date And Time Details
      let ReportTime = NSDate()
      let TimeStamp = NSDateFormatter()
      TimeStamp.timeStyle = NSDateFormatterStyle.ShortStyle
      TimeStamp.dateStyle = NSDateFormatterStyle.ShortStyle
      TimeStamp.stringFromDate(ReportTime)
      //MARK: Default Point Annotation Begins
      let ReportAnnotation = MKPointAnnotation()
      ReportAnnotation.title = "Annotation Created"
      ReportAnnotation.subtitle = ReportTime.description
      ReportAnnotation.coordinate = locationManager.location!.coordinate
      mapView(MainMap, viewForAnnotation: ReportAnnotation)
      MainMap.addAnnotation(ReportAnnotation)
  }
  
  @IBOutlet weak var MainMap: MKMapView!
  let locationManager = CLLocationManager()
  
  override func viewDidLoad() {
      super.viewDidLoad()
      self.locationManager.requestWhenInUseAuthorization()
      self.locationManager.delegate = self
      self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
      self.locationManager.startUpdatingLocation()
      self.MainMap.showsUserLocation = true
  }
  
  
  //MARK: - Location Delegate Methods
  func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
   let location = locations.last
   let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
   let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 0.02, longitudeDelta: 0.02 ))
      self.MainMap.setRegion(region, animated: true)
      //self.locationManager.stopUpdatingLocation()
  }
  func locationManager(manager: CLLocationManager, didFailWithError error: NSError){
      print(error.localizedDescription)
  }
  //MARK:Custom Annotation Begins Here
  func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -&gt; MKAnnotationView? {
      guard !annotation.isKindOfClass(MKUserLocation) else {
          return nil
      }
      /*if annotation.isKindOfClass(MKUserLocation){
          //emty return, guard wasn't cooperating
      }else{
      return nil
      }*/
      let annotationIdentifier = "AnnotationIdentifier"
  
      var annotationView: MKAnnotationView?
      if let dequeuedAnnotationView = mapView.dequeueReusableAnnotationViewWithIdentifier(annotationIdentifier){
          annotationView = dequeuedAnnotationView
          annotationView?.annotation = annotation
      }
      else{
          let av = MKAnnotationView(annotation: annotation, reuseIdentifier: annotationIdentifier)
          av.rightCalloutAccessoryView = UIButton(type: .DetailDisclosure)
          annotationView = av
      }
      if let annotationView = annotationView {
          annotationView.canShowCallout = true
          annotationView.image = UIImage(named: "image.png")
      }
      return annotationView
  
  }
  }
  </code></pre>
  
  <h3>Added Information</h3>
  
  <p>I am positive that the button functionality works perfect. With the current code, dumped above, the default red pin annotation appears right where it should. When I tap on the pin, the description I specified also appears without an issue. <strong>The only problem I am having with this code is that I cannot get my image to take the place of the boring, default red pin</strong></p>