2011-11-01 35 views
3

我使用UIViewControllereditButtonItem来控制我的表格视图上的编辑模式。UIViewController的editButtonItem不会随着刷卡更改而删除

问题是,在大多数应用程序中,当您滑动一行以删除元素时,该编辑按钮将更改为“完成”状态。这样用户可以点击“完成”来停止删除元素。

在刷卡完成按钮删除情况

enter image description here

它不会在我的应用程序做到这一点

enter image description here

我想我可以改变标题和编辑按钮的样式tableview:editingStyleForRowAtIndexPath:,但不是UIViewController的点editButtonItem要自动?

谢谢。

+0

当表格视图进入编辑模式时,完成按钮改变它的状态。你有没有试图按下编辑按钮?那么按钮会改变吗? – dasdom

+0

@dasdom是的,它完全改变了。我在编辑单行时询问。 – gcamp

回答

3

实现这两个委托方法为我解决了它。 将视图控制器的.editing属性设置为YES并返回NO。

- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    self.editing = YES; 
} 

- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    self.editing = NO; 
} 
+0

太棒了!完全正确!我用'setEditing:animated:'和'animated = YES',它给人一种更好的感觉。 – gcamp

1

只有在UIViewController.editing属性为YES时才会自动执行。当您只编辑单行时,视图控制器本身不处于编辑模式,因此它不会更改按钮。

+0

我明白了,但为什么这似乎是其他应用程序中的标准,即使编辑单行也要更改为完成? – gcamp

+0

不知道。至少通过这种方式,您可以选择 - 编辑单行时,“完成”按钮有点冗余,因为在屏幕上的其他任何位置点击都会取消滑动删除。 – jrturton

+0

我的观点更多的是,您仍然可以在轻扫删除后点击编辑按钮,这没有任何意义。 – gcamp