如何通过双击GestureRecognizer获取发件人信息

时间:2015-03-12 22:58:43

标签: ios swift

@IBAction func BetPop(sender: UITapGestureRecognizer) {
    var BetPopVC = self.storyboard?.instantiateViewControllerWithIdentifier("BetPop") as VC3
    self.presentViewController(BetPopVC, animated: true, completion: nil)
}

已连接到VC1: ViewController中的多个按钮,并显示VC3: ViewController

prepareForSegue中我想传递字符串数据以通知VC3许多VC1 UIButtons中的哪一个称为操作。我在var betSource = ""

中将其声明为VC3

对于之前的字符串传递,我在prepareForSegue

中使用了类似的内容
let BVC = segue.destinationViewController as VC3
    BVC.source = segue.identifier!

但是那些先前的segues是使用Storyboard生成的,其中我可以命名segue.identifier

1.有没有办法通过双击Storyboard来做segue?

和/或

2.我可以放点像......

BVC.betSource = (title of UIButton pressed or VC-presenting-UIButton)

在我的@IBAction func BetPop

2 个答案:

答案 0 :(得分:1)

如果您要使用点击手势识别器,最好将它们附加到标签而不是按钮。您可以直接从IB中的轻击手势识别器设置segue,它将作为senderForsegue:sender:的sender参数传入。您可以使用其view属性获取tapper附加到的视图。然后,您可以使用它来获取标签或其标签的文本,以便区分哪个标签被双击。

答案 1 :(得分:0)

你实际上并没有创建一个segue,你只是简单地调用导航。根据您的代码,您很可能需要执行以下操作:

@IBAction func BetPop(sender: UITapGestureRecognizer) {
    var BetPopVC = self.storyboard?.instantiateViewControllerWithIdentifier("BetPop") as VC3
    let buttonThatWasDoubleTapped = sender.view as UIButton //assuming you hooked the gesture recognizer to a UIButton in order to handle double taps
    BetPopVC.betSource = buttonThatWasDoubleTapped.titleLabel.text
    self.presentViewController(BetPopVC, animated: true, completion: nil)
}

至于你的第二个问题,看起来你正在创建一个手势识别器来调用你的VC3。只需设置此参数即可在双击时启动事件。

myGestureRecognizer.numberOfTapsRequired = 2