2011-11-01 31 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