Swift 3如何在UITableViewRowAction中引用行索引
所以我尝试在表视图中创建一个自定义滑动,包括一个删除和一个编辑按钮。但是,我无法引用要编辑的选定单元格的行。本例中的索引为[x,y],x始终为0,表示滑动时编辑按钮的索引,而y是行索引 我如何引用行索引,换句话说,[x,y]中的y。谢谢Swift 3如何在UITableViewRowAction中引用行索引,swift,indexing,tableview,Swift,Indexing,Tableview,所以我尝试在表视图中创建一个自定义滑动,包括一个删除和一个编辑按钮。但是,我无法引用要编辑的选定单元格的行。本例中的索引为[x,y],x始终为0,表示滑动时编辑按钮的索引,而y是行索引 我如何引用行索引,换句话说,[x,y]中的y。谢谢 override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? { let delete =
override func tableView(_ tableView: UITableView, editActionsForRowAt: IndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .normal, title: "Delete") { action, index in
self.leaveLeaveType.remove(at: index.row)
self.leaveStartsTime.remove(at: index.row)
self.leaveEndsTime.remove(at: index.row)
self.leaveHost.remove(at: index.row)
self.leaveDest.remove(at: index.row)
tableView.deleteRows(at: [index], with: .fade)
}
let edit = UITableViewRowAction(style: .normal, title: "Edit") { action, index in
//self.performSegue(withIdentifier: "editLeaveRequest", sender: self)
let editCell = self.tableView.cellForRow(at: index)! as! LeaveRequestTableViewCell
self.editLeaveType = editCell.leaveLeaveType.text!
self.editHost = editCell.leaveHost.text!
self.editDest = editCell.leaveDest.text!
let cellDateTime = editCell.leaveDateTime.text!
let startsTimeStartIndex = cellDateTime.index(cellDateTime.startIndex, offsetBy: 0)
let startsTimeEndIndex = cellDateTime.index(cellDateTime.endIndex, offsetBy: -22)
let startsTimeRange = startsTimeStartIndex..<startsTimeEndIndex
self.editStartsTime = cellDateTime[startsTimeRange]
let endsTimeStartIndex = cellDateTime.index(cellDateTime.startIndex, offsetBy: 22)
let endsTimeEndIndex = cellDateTime.index(cellDateTime.endIndex, offsetBy: 0)
let endsTimeRange = endsTimeStartIndex..<endsTimeEndIndex
self.editEndsTime = cellDateTime[endsTimeRange]
}
delete.backgroundColor = .red
edit.backgroundColor = .lightGray
return [delete, edit]
}
重写func tableView(tableView:UITableView,editActionsForRowAt:IndexPath)->[UITableViewRowAction]?{
让delete=UITableViewRowAction(样式:.normal,标题:“delete”){action,中的索引
self.leaveType.remove(位于:index.row)
self.leaveStartsTime.remove(位于:index.row)
self.leveEndStime.remove(位于:index.row)
self.leaveHost.remove(位于:index.row)
self.leaveDest.remove(位于:index.row)
tableView.deleteRows(位于:[索引],带:。淡入淡出)
}
let edit=UITableViewRowAction(样式:.normal,标题:“edit”){action,中的索引
//self.performsgue(标识符为:“editLeaveRequest”,发送者:self)
让editCell=self.tableView.cellForRow(at:index)!as!LeaveRequestTableViewCell
self.editLeaveType=editCell.LeaveType.text!
self.editHost=editCell.leaveHost.text!
self.editDest=editCell.leaveDest.text!
让cellDateTime=editCell.leaveDateTime.text!
让StartTimeStartIndex=cellDateTime.index(cellDateTime.startIndex,偏移量:0)
让StartTimeEndIndex=cellDateTime.index(cellDateTime.endIndex,偏移量:-22)
让StartTimeRange=StartTimeStartIndex..代码无法工作,因为缺少本地参数标签indexPath
override func tableView(_ tableView: UITableView,
editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? {...
这个indexPath
包含所选单元格的节和行。谢谢您的帮助……但是当我滑动并尝试打印indexPath时,它仍然显示类似[x,y]的内容,例如[0,0]或[0,1],0,1是行。另外,由于我有一个删除和编辑按钮,我发现它们都会产生相同的[x,y]按下时,[x,y]索引中的x代表什么?但我似乎不能让editCell=self.tableView.cellForRow(at:[IndexXPath.row])!as!LeaveRequestTableViewCellNo,cellForRow…
需要完整的索引路径:cellForRow(at:IndexXPath)
索引路径在闭包中被捕获。好的,我知道了。但是,当我确实单击“编辑”并进入新控制器时,索引路径仍然是错误的。