title: Swift - perform Segue
body: <pre><code>if (view.annotation.title as String!) == "Helgoland " {
    currentLong = 7.889021
    currentLat = 54.180210 
    url = "google.com"
  
    let alertController: UIAlertController = UIAlertController(title: "Change Map Type", message: nil, preferredStyle: UIAlertControllerStyle.Alert)
    let cancelAction: UIAlertAction = UIAlertAction(title: "Back", style: UIAlertActionStyle.Cancel, handler: nil)
    let button1action: UIAlertAction = UIAlertAction(title: "Product Page", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -&gt; () in
      performSegueWithIdentifier("showShop", sender: self)
    })
    let button2action: UIAlertAction = UIAlertAction(title: "Video", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -&gt; () in
      youtubeVideoID = "XX"
      UIApplication.sharedApplication().openURL(NSURL(string: "http://www.youtube.com/watch?v=\(youtubeVideoID)"))
    })
    alertController.addAction(cancelAction)
    alertController.addAction(button1action)
    alertController.addAction(button2action)
    self.presentViewController(alertController, animated: true, completion: nil)
  }
  </code></pre>
  
  <p>I always get an error with </p>
  
  <blockquote>
    <p>"Implicit use of 'self' in closure; use 'self.' to make capture
     semantic explicit"</p>
  </blockquote>
  
  <p>but if I set <code>self.view</code>, it also fails.</p>