-1

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

在 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:但现在 Tableview 的 Edit 的正常行为丢失了。

4

1 回答 1

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;
}
于 2012-06-17T04:13:15.163 回答