2014-10-02 26 views
6

görünümüne erişim Bir tablo görünümünün UITableViewRowAction kullanarak bazı düzenleme eylemlerini gerçekleştirdim. Bunlardan biri bir silme eylemidir ve silme işlemini onaylamak için bir eylem sayfası içeren bir popo sunmak istiyorum. Bu nedenle, UIPopoverPresentationController'a aktarmak için silme düğmesi görünümüne bir başvuruya ihtiyacım var.Bir UITableViewRowAction iOS 8

UITableViewRowAction nesnesinin görünümüne erişmenin herhangi bir yolu var mı?

biraz daha netleştirmek için, erişmeye çalıştığınız görünüm im kırmızı, yeşil ile işaretlenmiş, silme düğmesi geçerli:

+0

Hızlı veya Amaç C? – derdida

+0

@derdida Object C'yi tercih edin, ancak ikisini de anlayabilirsiniz – GuillermoMP

+0

Üzerinde geçirdiğiniz hücrenin indexPath öğesi işleyiciye aktarılır. Tek ihtiyacınız olan bu değil mi? – rdelmar

cevap

1

Maalesef ben bu Objective-C versiyonunu bilmiyorum ama Bunu şimdi Swift'de bir projede kullanıyorum ve işe yaramalı. Sadece iOS 8, bundan önce yapmanın bir yolu olduğundan emin değilim.

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] 
} 

Diğer seçenek tableview işlevini kullanmaktır: Eğer bir açılır pencere oluşturabilir ve bunları onaylamak izin verebilir

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

. Bu muhtemelen daha iyi çalışır, bence bu tam da işin yapacağı şeydir.

Düzenleme: kodun ilk kodundaki [deleteButton] değerini unuttu.

-1

UIView * view = sender.superview; // Hücre contentView

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