У меня есть следующий код в UITableViewDelegate:можно удалить строку таблицы, проводя, но не в режиме редактирования
@IBAction func editButtonPressed(sender: AnyObject) {
if weightsTableView.editing {
editButton.title = "Edit"
weightsTableView.setEditing(false, animated: true)
} else {
editButton.title = "End Edit"
weightsTableView.setEditing(true, animated: true)
}
}
func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
scale.weights.removeAtIndex(indexPath.row)
tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
}
}
func tableView(tableView: UITableView, moveRowAtIndexPath sourceIndexPath: NSIndexPath, toIndexPath destinationIndexPath: NSIndexPath) {
let ws = scale.weights.removeAtIndex(sourceIndexPath.row)
scale.weights.insert(ws, atIndex: destinationIndexPath.row)
}
я могу удалить запись из таблицы, проводя без перехода в режим редактирования. Когда я перехожу в режим редактирования, я могу перемещать записи в таблице, но прикосновение к значку удаления ничего не делает.
Я новичок в этом. Что мне не хватает?
В соответствии с просьбой, вот остальная часть кода контроллера таблицы:
func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return scale.weights.count
}
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("WeightSetCell", forIndexPath: indexPath) as! WeightSetTableViewCell
cell.gaugeLabel.text = scale.weights[indexPath.row].gauge
cell.initialLabel.text = "\(scale.weights[indexPath.row].initial) " + scale.weights[indexPath.row].weightUnit
cell.incrementLabel.text = "\(scale.weights[indexPath.row].increment) " + scale.weights[indexPath.row].weightUnit
return cell
}
Дополнительная информация: Я поставил точку останова на если editingStyle == .Delete линии. Он вызывается, когда я удаляю путем прокрутки, но не тогда, когда я перехожу в режим редактирования и нажимаю значок удаления.
Пожалуйста, добавьте остальную часть контроллера, как cellForRowAtIndexPath и т.д. Кроме того, как вы хотите работать? – ryantxr
после удаления элемента из массива, перезагрузите таблицу. – DHEERAJ
@DHEERAJ. Нет, не делай этого. – rmaddy