在表视图控制器的编辑模式下,如何施加其他行为。我想实现一种行为,就像电话应用程序的“最近”部分一样,按下“编辑”后,左侧会出现“清除”按钮。我怎么能这样做?
在viewDidLoad中我有
self.navigationItem.rightBarButtonItem = self.editButtonItem;
因此,当按下编辑按钮时,我得到红色圆圈,它给我删除功能,工作正常,然后
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
自动调用,以便更新tableview和基础数据。他们都很好。但是,如果我修改viewDidLoad的内容,如下面的
self.navigationItem.rightBarButtonItem = self.editButtonItem;
self.navigationItem.rightBarButtonItem.action = @selector(editPressed:);
并实施
- (IBAction)editPressed:(UIButton *)sender
{
NSLog(@"In Edit Pressed");
}
按Edit按钮将转到editPressed:但现在Edit for tableview的正常行为将丢失。
答案 0 :(得分:1)
使用默认视图控制器编辑按钮时,您可以覆盖- (void)setEditing:(BOOL)editing animated:(BOOL)animated
的方法UITableViewController
。因此,您可以将代码放在此方法中,并super
。所以,你的代码看起来像这样:
- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
[super setEditing:editing animated:animated];
if (myTable.editing)
self.navigationItem.leftBarButtonItem = additionalButtonItem;
else
self.navigationItem.leftBarButtonItem = nil;
}