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!) -> () in
performSegueWithIdentifier("showShop", sender: self)
})
let button2action: UIAlertAction = UIAlertAction(title: "Video", style: UIAlertActionStyle.Default, handler: { (action: UIAlertAction!) -> () 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)
}
J'ai toujours une erreur avec
"Utilisation implicite de" soi "dans la fermeture; utilisez" soi ". rendre la capture sémantique explicite "
mais si je mets self.view
, il échoue également.
Vous devrez utiliser explicitement self:
self.performSegueWithIdentifier("showShop", sender: self)
Et pour Swift 3 (thx @KingChintz):
self.performSegue(withIdentifier: "showShop", sender: self)
Pour Swift 3
_ = self.navigationController?.popToRootViewController(animated: false)