我在视图控制器中有一个滑动手势,可以正常工作并向输出报告。像这样简单:
@IBAction func leftSwipe(sender: UISwipeGestureRecognizer) {
println("ok")
}
然后我拿了相同的手势识别器并附加了一个segue,这会导致它在检测到滑动时以模态方式切换视图控制器。我通过简单的控制点击在故事板中完成了所有操作,将手势识别器拖动到我想要更改的视图控制器,然后选择其中一个segue动画选项。它按预期工作,当我将视图控制器更改为另一个时,但是... IBAction完全停止工作,我甚至使用断点,它从未在那里打破。是否触发了segues正常取消其他发送的操作?我总是可以添加另一个手势识别器,但这种行为是否正常?
小更新: 添加新的手势识别器工作,可以通过IBAction识别,但现在前一个手势不起作用,视图控制器也不会改变。
解: 感谢Firas指出我正确的方向,我发现apple [{3}}解释了方法prepareForSegue 我在发送segue的视图控制器中实现了这个方法:
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "yourSegueID" {
println("segue happened, so the gesture did too!")
}
}
也许将segue与这样的手势联系起来可能存在问题,但对于我的实现,我真的看不到任何可能发生的事情。
答案 0 :(得分:0)
你可以做的是从viewController
而不是gestureRecognizer
获取segue并给该segue一个标识符,例如segueIdentifier
,然后在你的行动电话self.performeSegueWithIdentifier...
上或做其他事。
每当您直接从视图或手势识别器创建segue时,该视图/ gestureRecognizer上的操作都不会执行