Swift: realiza Segue

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, prefernetworkingStyle: 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!) -> () in performSegueWithIdentifier("showShop", sender: self) }) let button2action: UIAlertAction = UIAlertAction(title: "Video", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -> () in youtubeVideoID = "XX" UIApplication.shanetworkingApplication().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) } 

Siempre obtengo un error con

"Uso implícito del 'yo' en el cierre; uso 'yo'. hacer explícita la captura semántica "

pero si pongo self.view , también falla.

    Tendrá que usar explícitamente uno mismo:

    self.performSegueWithIdentifier("showShop", sender: self)

    Y para Swift 3 (thx @KingChintz):

    self.performSegue(withIdentifier: "showShop", sender: self)

    Para Swift 3

      _ = self.navigationController?.popToRootViewController(animated: false)