2017-10-22 4 views
0

Ich versuche, die Schaltfläche zum Löschen einer Zelle zu ändern. Ich habe 2 Funktionen:Ändern Sie den Text der Zelle Löschen-Taste

override func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { 
    let titleBtn = UITableViewRowAction(style: UITableViewRowActionStyle.default, title: "Supprimer") { (action , indexPath) -> Void in 
     self.isEditing = false 
    //ackAction.backgroundColor = UIColor.orange 
    } 
    return [titleBtn] 
} 


override func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
    return true 
} 

Aber, wenn ich meine app laufen, wird der Text der Schaltfläche geändert wird, aber das Löschen funktioniert nicht (ich kann nicht Daten von meinem Array löschen und die Reihe meiner Tabellenansicht). Bevor Sie diese Funktionen hinzufügen, hat alles perfekt funktioniert. Ein Detail: in der canEditRowAt Funktion habe ich versucht, zu falschen zurückzukehren ... Dank durch Voraus

Antwort

0

, wenn Sie den Text der Schaltfläche Löschen ändern möchten, passen sich diese Methode in der UITableViewDelegate:

func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? 
{ 
    return "Your new title" 
} 

Um das Element aus dem Array entsprechen diese Methode

func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) 
{ 
    if (editingStyle == UITableViewCellEditingStyle.delete) 
    { 
     yourDataSourceArray.remove(at: indexPath.row) 
     yourTableView.reloadData() 
    } 
} 
+0

Vielen Dank, alles ist jetzt in Ordnung;) – Wills

+0

@Wills war die Antwort hilfreich? –

0

Sie können entweder Standard-Aktion löschen und ändern Sie den Titel wie folgt zu löschen.

func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? 
    { 
     return "MyAction" 
    } 

oder Sie können Ihre eigenen Aktionsknöpfe wie diese erstellen.

func tableView(_ tableView: UITableView, canEditRowAt indexPath: IndexPath) -> Bool { 
     return true 
    } 

    func tableView(_ tableView: UITableView, editActionsForRowAt indexPath: IndexPath) -> [UITableViewRowAction]? { 
     let deleteAction = UITableViewRowAction(style: .default, title: "Delete") {action in 
      //handle delete 
     } 

     let editAction = UITableViewRowAction(style: .normal, title: "Edit") {action in 
      //handle edit 
     } 

     return [deleteAction, editAction] 
    } 
Verwandte Themen