2017-10-18 249 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'中訪問它! –