在tableview的编辑模式下添加左栏按钮项

时间:2012-06-17 04:03:19

标签: iphone objective-c uitableview uibarbuttonitem

在表视图控制器的编辑模式下,如何施加其他行为。我想实现一种行为,就像电话应用程序的“最近”部分一样,按下“编辑”后,左侧会出现“清除”按钮。我怎么能这样做?

在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的正常行为将丢失。

1 个答案:

答案 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;
}