Я создал tableView ячейки с действием, и мне нужно действие, чтобы знать indexPath ячейки, которая выбрана. Я не могу понять, как передать indexPath в качестве параметра для действия или найти любой другой способ его действия. Вот код для Tableview cellForRowAt и действия должны быть выполнены:Передача параметров в действия в Swift
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "menuCell", for: indexPath) as! CustomCell
cell.foodName.text = self.menuItems[indexPath.row]
//adding gesture recognizer with action Tap to cell
let tapGesture = UITapGestureRecognizer(target: self, action: #selector(Tap(gesture:index:IndexPath.row)))
cell.addGestureRecognizer(tapGesture)
return cell
}
func Tap(gesture: UIGestureRecognizer , index: Int){
print("Tap")
//necessary so that the page does not open twice
//adding the rating view
let ratingVC = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "rating") as! RatingView
ratingVC.foodName = selectedItem
self.addChildViewController(ratingVC)
ratingVC.view.frame = self.view.frame
self.view.addSubview(ratingVC.view)
ratingVC.didMove(toParentViewController: self)
}
Я не могу понять, как передать IndexPath.row в качестве параметра Tap.
Если вы предоставили возможность выбора только одной строки в таблицеView, вы можете использовать свойство indexPathForSelectedRow' в 'Fund Tap', чтобы получить индекс indexPath текущей выбранной строки. Для получения дополнительной информации о собственности, проверьте [Apple Doc] (https://developer.apple.com/reference/uikit/uitableview/1615000-indexpathforselectedrow) –