title: How can I make this button in a function open another View Controller with Swift?
body: <p>When you search a location in my app, a pin with a title appears in that location. Next tot that title there's a button, where I am right now is that when you tap it it prints ("Disclosure Pressed!") in the func mapView. How can I code it so that instead of printing that it opens another View Controller with that location appearing again in a mini map this time?</p>
  
  <pre><code>import UIKit
  import MapKit
  
  protocol HandleMapSearch {
  func dropPinZoomIn(placemark:MKPlacemark)
  }
  
  class ViewController: UIViewController {
  let locationManager = CLLocationManager()
  var resultSearchController:UISearchController? = nil
  var selectedPin:MKPlacemark? = nil
  
  
  @IBOutlet weak var mapView: MKMapView!
  
  override func viewDidLoad() {
  
  
      super.viewDidLoad()
      locationManager.delegate = self
      locationManager.desiredAccuracy = kCLLocationAccuracyBest
      locationManager.requestWhenInUseAuthorization()
      locationManager.requestLocation()
  
      //
      let locationSearchTable = storyboard!.instantiateViewControllerWithIdentifier("LocationSearchTable") as! LocationSearchTable
      resultSearchController = UISearchController(searchResultsController: locationSearchTable)
      resultSearchController?.searchResultsUpdater = locationSearchTable
      //
      let searchBar = resultSearchController!.searchBar
      searchBar.sizeToFit()
      searchBar.placeholder = "Search for places"
      navigationItem.titleView = resultSearchController?.searchBar
      //
      resultSearchController?.hidesNavigationBarDuringPresentation = false
      resultSearchController?.dimsBackgroundDuringPresentation = true
      definesPresentationContext = true
      //
      locationSearchTable.mapView = mapView
      //
      locationSearchTable.handleMapSearchDelegate = self
      //
      let button   = UIButton(type: UIButtonType.System) as UIButton
      button.frame = CGRectMake(100, 100, 100, 50)
      button.backgroundColor = UIColor.greenColor()
      button.setTitle("Button", forState: UIControlState.Normal)
      button.addTarget(self, action: Selector("Action:"), forControlEvents: UIControlEvents.TouchUpInside)
      self.view.addSubview(button)
  
  }
  
  override func didReceiveMemoryWarning() {
      super.didReceiveMemoryWarning()
      // Dispose of any resources that can be recreated.
  }
  
  
  
  }
  
  extension ViewController : CLLocationManagerDelegate {
  func locationManager(manager: CLLocationManager, didChangeAuthorizationStatus status: CLAuthorizationStatus) {
      if status == .AuthorizedWhenInUse {
          locationManager.requestLocation()
      }
  }
  
  func locationManager(manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
      if let location = locations.first {
          let span = MKCoordinateSpanMake(0.05, 0.05)
          let region = MKCoordinateRegion(center: location.coordinate, span: span)
          mapView.setRegion(region, animated: true)
      }
  }
  func locationManager(manager: CLLocationManager, didFailWithError error: NSError) {
      print("error:: \(error)")
  }
  }
  
  extension ViewController: HandleMapSearch {
  func dropPinZoomIn(placemark:MKPlacemark){
      // cache the pin
      selectedPin = placemark
      // clear existing pins
      mapView.removeAnnotations(mapView.annotations)
      let annotation = MKPointAnnotation()
      annotation.coordinate = placemark.coordinate
      annotation.title = placemark.name
      if let city = placemark.locality,
          let state = placemark.administrativeArea {
          annotation.subtitle = "\(city) \(state)"
      }
      mapView.addAnnotation(annotation)
      let span = MKCoordinateSpanMake(0.05, 0.05)
      let region = MKCoordinateRegionMake(placemark.coordinate, span)
      mapView.setRegion(region, animated: true)
  
  }
  }
  extension ViewController : MKMapViewDelegate {
  
  func mapView(mapView: MKMapView, viewForAnnotation annotation: MKAnnotation) -&gt; MKAnnotationView? {
  
      if annotation is MKUserLocation {
          //return nil so map view draws "blue dot" for standard user location
          return nil
      }
  
      let reuseId = "pin"
      var pinView = mapView.dequeueReusableAnnotationViewWithIdentifier(reuseId) as? MKPinAnnotationView
      pinView = MKPinAnnotationView(annotation: annotation, reuseIdentifier: reuseId)
      pinView?.pinTintColor = UIColor.orangeColor()
      pinView?.canShowCallout = true
      pinView?.rightCalloutAccessoryView = UIButton(type: UIButtonType.DetailDisclosure) as UIButton
      return pinView
  }
  func mapView(mapView: MKMapView, annotationView: MKAnnotationView, calloutAccessoryControlTapped control: UIControl) {
  
      if control == annotationView.rightCalloutAccessoryView {
          print("Disclosure Pressed!")
      }
  }
  
  
  
  }
  </code></pre>