我有一个UITableViewDataSource,用于两个不同的UITableViews。在其中一个表格视图中,我想启用滑动删除功能,所以我实现了tableView:commitEditingStyle:forRowAtIndexPath
,并且按预期工作。但是,在另一个表中,我想禁用该功能。允许在UITableViewDataSource的一个实例中刷卡删除,但不是另一个
我已经通过创建两个UITableViewDataSource类,一个子类化另一个,并且我只在子类中实现了tableView:commitEditingStyle:forRowAtIndexPath
。我称它们为RecipientModel和RecipientModelEditable。
我想知道是否有更好的方法。
是的,但我怎么“禁止刷卡”,在没有做任何事情了'的tableView:commitEditingStyle:forRowAtIndexPath'?通过简单的定义方法,用户可以轻扫*查看*删除按钮。我不希望它显示出来。 – synic 2010-05-21 17:01:24
你想让单元格可编辑吗?如果没有,那么你可以通过在'-tableView:canEditRowAtIndexPath:'中返回'NO'来解决这个问题。否则,如果仅仅定义该方法就足够了,那么就必须求助于你的子类化方法或者开始搞乱Objective-C运行时。 – 2010-05-21 17:50:42
另请参阅:http://stackoverflow.com/questions/969313/uitableview-disable-swipe-to-delete-but-still-have-delete-in-edit-mode – 2010-05-21 17:52:44