2017-10-18 115 views
0

我正在构建一个基本清单应用程序时遇到轻微问题。从UILongPressRecognizer确定细胞的细胞

在表视图细胞的常规水龙头,我Segue公司使用prepare(for segue)NewTaskViewController到:

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。长按Segue公司应在同一NewTaskViewController但这次加入细胞的TaskItemtaskToEdit财产

} 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

那么你可以在你的处理函数中尝试这样的事情吗?

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

非常感谢!我在这里做的是将indexPath存储在类中的存储属性中,并在'prepareForSegue'中访问它! –