Objective c 检测editButtonItem抽头

Objective c 检测editButtonItem抽头,objective-c,ios,uitableview,uibarbuttonitem,Objective C,Ios,Uitableview,Uibarbuttonitem,我在导航栏中有一个带有editButtonItem的UITableView。我想在用户点击editButtonItem时播放一次点击声音。现在,我使用以下方法在点击编辑按钮时播放点击声音 - (void)setEditing:(BOOL)editing animated:(BOOL)animated { //Code to play the tap sound file [super setEditing:editing animated:animated];} 但我的问题是,当用户滑动tab

我在导航栏中有一个带有editButtonItem的UITableView。我想在用户点击editButtonItem时播放一次点击声音。现在,我使用以下方法在点击编辑按钮时播放点击声音

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
//Code to play the tap sound file
[super setEditing:editing animated:animated];}

但我的问题是,当用户滑动tableviewcell时,也会播放敲击声&此时会显示delete按钮,这不是我想要的。因此,我的问题是,有没有更好的方法来检测何时点击editButtonItem?

当点击EditButton时,下面的代码只会播放声音。当您点击“完成”时,它将不会播放声音。此外,当您滑动手机时,声音不应播放

- (void)willTransitionToState:(UITableViewCellStateMask)state
{
    if (state == UITableViewCellStateShowingDeleteConfirmationMask) {
        swipedToDelete = YES; // BOOL ivar
    }
}

- (void)setEditing:(BOOL)editing animated:(BOOL)animated 
{
    [super setEditing:editing animated:animated];

    if (editing && !swipedToDelete) 
    {
        // Play sound
    }

    if (swipedToDelete) {
        swipedToDelete = NO;
    }
}

当我滑动tableviewcell时,仍然会播放声音&此时会显示delete按钮。这正是我试图避免的。你的回答很有道理,我也明白为什么它会起作用,但是,出于某种原因,在刷手机时声音仍然会播放。有什么想法吗?@user1542795在集合编辑中添加一些nslog以输出
swipedToDelete
值。另外,在
WillTransitionOnState
中添加一些NSLog,以查看首先调用的是哪一个。当我意识到WillTransitionOnState是UITableViewCell而不是UITableViewController上的一个方法时,我正准备开始用头撞墙,试图弄清楚为什么WillTransitionOnState根本没有被调用。谢谢