【发布时间】:2016-04-24 04:53:36
【问题描述】:
我已经实现了“在单元格上向左滑动”功能以显示“编辑”和“删除”按钮,但我正在努力正确传递单元格的 indexPathForCell,因为点击编辑按钮只会显示添加/编辑单元格视图,而不是使用点击编辑按钮的单元格中的数据预先填充添加/编辑中的字段。
这是我的 ItemTableViewController 中的相关代码:
// swipe-left options for a cell (Edit, Delete)
override func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [UITableViewRowAction]? {
let delete = UITableViewRowAction(style: .Destructive, title: "Delete") { (action, indexPath) in
// delete item at indexPath
self.items.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
let edit = UITableViewRowAction(style: .Normal, title: "Edit") { (action, indexPath) in
// edit item at indexPath
self.performSegueWithIdentifier("EditItem", sender: self)
}
return [delete, edit]
}
// Prepare for Segue
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
if segue.identifier == "EditItem" {
let ItemDetailViewController = segue.destinationViewController as! AddItemController
// Get the cell that generated this segue.
if let selectedItemCell = sender as? ItemTableViewCell {
let indexPath = tableView.indexPathForCell(selectedItemCell)!
let selectedItem = item[indexPath.row]
ItemDetailViewController.item = selectedItem
}
}
else if segue.identifier == "AddItem" {
print("Adding new item.")
}
}
如果我点击单元格本身,prepareForSegue 函数可以正常工作,因为这就是 segue 所链接的内容。最终,我想点击单元格来触发另一个视图的不同 segue,所以实际上我似乎不得不放弃这个实现的大部分/大部分。我只需右键单击并从“编辑单元格”按钮拖动,但它在情节提要中不可见,因此它的当前实现依赖于“点击单元格”操作,但因为我想要那个“点击- on-cell” 继续去其他地方,我完全不知道如何拥有编辑按钮“获取此单元格的 indexPath 并继续添加/编辑视图”。
【问题讨论】:
标签: ios swift uitableview