从UILongPressRecognizer确定segue的单元格

时间:2017-10-18 16:16:16

标签: ios iphone swift uitableview

我正在构建一个基本清单应用程序的问题。

在常规点击表格查看单元格时,我使用NewTaskViewController转到我的prepare(for segue)

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    if segue.identifier == "AddTask" {
        let nav = segue.destination as! UINavigationController
        let newTaskVc = nav.topViewController as! NewTaskViewController
        newTaskVc.delegate = self
        newTaskVc.managedContext = managedContext

我还在我添加到单元格的UILongPressGestureRecognizer上执行了一个segue。长按应该转换为相同的NewTaskViewController,但这次将单元格的TaskItem添加到其taskToEdit属性

    } else if segue.identifier == "EditTask" {
        let nav = segue.destination as! UINavigationController
        let editTaskVc = nav.topViewController as! NewTaskViewController
        editTaskVc.delegate = self
        editTaskVc.managedContext = managedContext
        editTaskVc.taskToEdit = ?

当我使用UILongPressRecognizer时,我正在努力弄清楚如何确定长按单元格的索引路径,以便我可以传递正确的项目。

基本上,如何从手势识别器识别表格视图单元格?

提前致谢!

1 个答案:

答案 0 :(得分:1)

你可以在你的处理功能中尝试这样的东西吗?

if longPressGestureRecognizer.state == UIGestureRecognizerState.Began {
    let touchPoint = longPressGestureRecognizer.locationInView(self.view)
    if let indexPath = tableView.indexPathForRowAtPoint(touchPoint) {
        // Your Stuff
    }
}