Search code examples
uiimageviewswiftibactionuitapgesturerecognizer

prepareForSegue called before IBAction


I have UIImageView with UITapGestureRecognizer. I want send to another VC some info when image is tapped. But code in prepareForSegue called before any IBAction (UITapGestureRecognizer) so I can't put any data in vars in prepareForSegue. How I can do that?

So I have:

var tempVar: NSString = ""

...

override func prepareForSegue(segue: UIStoryboardSegue!, sender: AnyObject!)
{
   if(segue.identifier == "second")
   {
       let secondVC = segue.destinationViewController as secondViewController
       secondVC.someVar = tempVar
   }
}

...

@IBAction func imageTapped(sender: UITapGestureRecognizer)
{
   tempVar = "someText"
   self.navigationController.pushViewController(self.storyboard.instantiateViewControllerWithIdentifier("secondStoryBoardName") as secondViewController, animated: true)
}

Solution

  • as in my comment:

    Try this (in your imagetapped function)

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