2014-10-02 11 views
6

Ich habe einige Bearbeitungsaktionen für die Zeilen einer Tabellenansicht mit UITableViewRowAction implementiert. Eine davon ist eine Löschaktion und ich möchte ein Popover mit einem Aktionsblatt zur Bestätigung der Löschaktion darstellen. Daher brauche ich einen Verweis auf die Schaltfläche zum Löschen der Schaltfläche, um sie an die UIPopoverPresentationController zu übergeben.Zugriff auf die Ansicht eines UITableViewRowAction iOS 8

Es gibt eine Möglichkeit, auf die Ansicht des Objekts UITableViewRowAction zuzugreifen?

Um ein bisschen mehr, wobei die Ansicht im Zugang zu versuchen, zu klären ist die rote Taste löschen, grün markiert:

+0

Swift oder Objective C? – derdida

+0

@derdida Bevorzugen Sie Objective C, aber Sie können beide verstehen – GuillermoMP

+0

Der IndexPfad der Zelle, die Sie swiped, wird an den Handler übergeben. Ist das nicht alles was du brauchst? – rdelmar

Antwort

1

Sorry, ich weiß nicht, die Objective-C-Version diesen, aber Ich benutze dies in einem Projekt von mir jetzt in Swift, und es sollte funktionieren. Es ist nur iOS 8, ich bin mir nicht sicher, ob es einen Weg gibt, es vorher zu tun.

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? { 

    var deleteButton: UITableViewRowAction = UITableViewRowAction(style: .Default, title: "  ", handler: { (action, indexPath) in 

      // put whatever you need to call here. below is the default code, which will delete the cell as usual. 
      self.tableView.dataSource?.tableView?(
       self.tableView, 
       commitEditingStyle: .Delete, 
       forRowAtIndexPath: indexPath 

      ) 

      return 
     }) 
    } 
    return [deleteButton] 
} 

Die andere Option ist, um die Tableview-Funktion:

func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) 

Wo ein Popup schaffen könnten und lassen Sie sie es bestätigen. Das würde wahrscheinlich besser funktionieren, ich glaube, das ist genau die Art von Dingen, für die die Funktion ist.

Edit: vergessen die Rückkehr [deleteButton] in diesem ersten Bit des Codes.

-1

UIView * view = sender.superview; // ZellinhaltView

CustomCell *cell; // (you can custom tableviewcell name if created) 
if(SYSTEM_VERSION_GREATER_THAN(@"8.0")) 
{ 
    cell = (CustomCell *)view.superview; 
} 
else{ 
    cell = (CustomCell *)[[[sender superview] superview]superview]; 

} 

And Access it by :- 
cell.view