Ich habe eine UITableView, für die ich einige benutzerdefinierte Slide-Out-Schaltflächen hinzugefügt habe. Alle funktionieren wie erwartet. Es gibt jedoch ein Szenario in meiner Tabelle, in dem sich eine Zeile in einem Zustand befinden kann, in dem keine der Ausblendschaltflächen relevant ist. Daher habe ich ein leeres Array von Aktionen zurückgegeben, sodass die Ausblendschaltflächen nicht angezeigt werden. Unglücklicherweise beendet das UITableView den Aufruf von editActionsForRowAtIndexPath und deaktiviert die Ausblendschaltflächen für alle Zeilen in meiner Tabelle ... und es scheint dauerhaft zu sein, bis die App neu gestartet wird.UITableView editActionsForRowAtIndexPath funktioniert nicht mehr, wenn Sie ein leeres Array zurückgeben
Ist das erwartete Verhalten?
func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]?
{
if mydata[indexPath.row].EditAvailable()
{
var editAction = UITableViewRowAction(style: .Default, title: "Edit", handler: editHandler)
return [editAction]
}
else
{
return []
}
}
A [long shot] (http://nshipster.com/at-compiler-directives/), aber versuchen zurückzukehren @ [] –
ich das @ -Zeichen aus Objective-C erkennen ... aber ist es gültig in swift? –
Ich dachte, ich habe gesehen, dass es in Swift irgendwo in der Nähe verwendet wurde, kann es jetzt aber nicht finden (zum Erstellen und Initialisieren von Arrays). Ist mydata immer ein zugreifbares Array mit mydata.length == indexpath Anzahl der Zeilen? –