2014-08-28 7 views
1

나는 UIImageViewUITapGestureRecognizer을가집니다. 이미지를 탭하면 다른 VC에 정보를 보내려고합니다. 그러나 prepareForSegue에있는 코드는 IBAction (UITapGestureRecognizer) 전에 호출되므로 어떤 데이터도 prepareForSegue에 넣을 수는 없습니다. 내가 어떻게 할 수 있니? IBAction 전에 호출되는 prepareForSegue

그래서 내가 가진 :

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) 
} 
+0

몇 가지 코드를 제공하십시오. performSegueWithIdentifier를 사용 했습니까? – derdida

+0

물론입니다. 나는 그 질문을 편집했다. –

+2

시도해보십시오 (imagetapped에서) self.performSegueWithIdentifier ("second", 보낸 사람 : 자기) – derdida

답변

1

:

이 (당신의 imagetapped 기능에) 시도

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

당신은 선택을해야합니다. 당신은/거랑로 두 viewControllers를 연결할 수 있습니다하려면


, 당신은 performSegueWithIdentifier:sender:를 사용해야합니다. 그런 다음 prepareForSegue:sender: 새 viewController 설정하는 데 도움이됩니다. 거랑와

귀하의 코드 : 당신이 pushViewController:animated:를 사용하는 경우

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.performSegueWithIdentifier("second", sender: nil) 
    //No need to give your secondViewController an identifier ("secondStoryBoardName") 
} 

, 그것은 어떤 SEGUE와 prepareForSegue:sender:의 코드를 사용하지 않습니다가 호출되지 않습니다. 거랑없는

귀하의 코드 : 내 댓글에 같은

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