title: I can't seem to set the MKMapView annotation title after the first time it has been set
body: <p>What happens is I type in an address in the search field and click go. The location is found and the map zooms in. I click on the pin image and the title bubble pops up and shows the title.</p>
  
  <p>I created a property "pin" to be a reference to the title property. After dragging to a new location has completed I set the property title label using the reference to the new location. In NSLog the property is showing as changed. But when I tap drag to a new location and dragging has ended the same original value of the title property remains unchanged.</p>
  
  <p>I've looked at tons of questions about similar things and nothing is working. </p>
  
  <p><strong>Here is my GO button method:</strong></p>
  
  <pre><code>  @IBAction func didTapGoButton(sender: UIButton) {
          self.spinnerContainer.hidden = false
          var geocoder = CLGeocoder()
          geocoder.geocodeAddressString(searchField.text, {(placemarks: [AnyObject]!, error: NSError!) -&gt; Void in
              if let placemark = placemarks?[0] as? CLPlacemark {
  
  
                  var region = self.mapView.region as MKCoordinateRegion
                  region.center = placemark.location.coordinate
                  region.span.longitudeDelta = 0.0144927536
                  region.span.latitudeDelta = 0.0144927536
  
                  self.mapView.zoomEnabled = true
                  self.mapView.scrollEnabled = true
                  let pa = MKPointAnnotation()
                  pa.coordinate = placemark.location.coordinate
                  pa.title = "\(placemark.name), \(placemark.locality), \(placemark.country)"
  
                  self.spinnerContainer.hidden = true
                  self.mapView.addAnnotation(pa)
                  self.pin = pa
                  self.mapView.setRegion(region, animated: true)
                  self.annotationTitle = pa.title
                  self.searchField.text = ""
  
                  //self.mapView.selectAnnotation(pa, animated: true)
  
                  var newLocation = CLLocation(latitude: pa.coordinate.latitude, longitude: pa.coordinate.longitude)
                  var geocoder = CLGeocoder()
                  geocoder.reverseGeocodeLocation(newLocation, completionHandler: { (placemarks: [AnyObject]!, error: NSError!) -&gt; Void in
                      if let placemark = placemarks?[0] as? CLPlacemark {
  
  
                        //  let pa = MKPointAnnotation()
                          pa.coordinate = placemark.location.coordinate
                          pa.title = "\(placemark.name), \(placemark.locality), \(placemark.administrativeArea), \(placemark.country), \(placemark.postalCode)"
  
                          NSLog("\(pa.title)")
                          self.addressFromCoordinates.text = pa.title
                          self.noAddressLabel.hidden = true
  
                      }
                  })
  
  
              }
  
          })
      }
  </code></pre>
  
  <p><strong>My viewForAnimation:</strong></p>
  
  <pre><code>func mapView(mapView: MKMapView!, viewForAnnotation annotation: MKAnnotation!) -&gt; MKAnnotationView! {
  
      if annotation.isKindOfClass(MKUserLocation) {
          return nil
      }
  
      let reuseId = "pin"
      var pin = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId)
  
      if pin == nil {
          NSLog("PIN NIL")
          pin = MKAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
          pin.image = UIImage(named: "pin")
          pin.draggable = true
          pin.canShowCallout = true
  
      }
      else
      {
          NSLog("PIN NOT NIL")
          pin.annotation = annotation
      }
      return pin;
  }
  </code></pre>
  
  <p><strong>my didChangeDragState method:</strong></p>
  
  <pre><code> func mapView(mapView: MKMapView!, annotationView view: MKAnnotationView!, didChangeDragState newState: MKAnnotationViewDragState, fromOldState oldState: MKAnnotationViewDragState) {
          if newState == MKAnnotationViewDragState.Starting
          {
              view.dragState = MKAnnotationViewDragState.Dragging
          }
          else if newState == MKAnnotationViewDragState.Ending || newState == MKAnnotationViewDragState.Canceling
          {
              view.dragState = MKAnnotationViewDragState.None
  
  
              var newLocation = CLLocation(latitude: self.pin.coordinate.latitude, longitude: self.pin.coordinate.longitude)
  
              var geocoder = CLGeocoder()
              geocoder.reverseGeocodeLocation(newLocation, completionHandler: { (placemarks: [AnyObject]!, error: NSError!) -&gt; Void in
                  if let placemark = placemarks?[0] as? CLPlacemark {
  
                      let pa = MKPointAnnotation()
                      pa.coordinate = placemark.location.coordinate
                      pa.title = "\(placemark.name), \(placemark.locality), \(placemark.administrativeArea), \(placemark.country), \(placemark.postalCode)"
  
                      self.annotationTitle = pa.title
  
                      self.addressFromCoordinates.text = pa.title
                      self.editAddressButton.hidden = false
                      self.noAddressLabel.hidden = true
                  }
              })
              NSLog("\(self.pin.coordinate.latitude), \(self.pin.coordinate.longitude)")
          }
      }
  </code></pre>
  
  <p>Is there some sort of refresh that needs to be done to the map view after dragging?</p>
  
  <p>Thanks for your time</p>