@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
?
答案 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