2010-04-14 118 views
1

我正在尋找一種直接調用編輯方法的方法。直接調用UITableViews委託方法

- (void)tableView:(UITableView *)theTableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 

我有所有我的動畫操作的細胞,來自我的模型排列 等在該方法中除去的邏輯。它在用戶滑動,添加或重新排列時被調用,但我想手動/直接調用 作爲後臺線程更改我的模型。

我構建一個NSIndexPath像這樣:

NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:1]; 

我只是無法弄清楚如何調用類似:

[self.tableview commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:path]; 

我需要訪問的這個方法以另一種方式顯示UITableView?

謝謝:)

回答

1

我不明白你爲什麼不能調用這個方法,如果你只想讓你的代碼執行。該文檔給出了一個沉重的提示

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 

將無論如何調用該數據源方法的效果。將代碼從該方法重構爲另一種方法並從數據源方法和代碼中的其他位置調用它會更有意義,如果這真的是你想要做的。

如果您確實想要反映您的模型中的更改,請致電[tableView reloadData] - 這就是它的用途。

+0

嗨Paull 我已經建立了一組自定義的單元格,使用自己的編輯圖形。所以我已經知道用戶希望刪除這些單元格。如果我將編輯設置爲YES,它將提供這樣的框架控制,這不是我的目標。 我同意調用commitEditingStyle直接要直截了當,但這樣做: \t \t \t \t \t [self.tableView:self.tableView commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:路徑]; 結果在「無法識別的選擇器」的消息,即使autocompletion是Xcode很樂意提供給我作爲一種方法在tableView? – RickiG 2010-04-17 10:12:44

+0

方法名稱是正確的 - 但它不是由tableView實現的;它是一種數據源必須實現的方法,以反映您對模型中的表進行的更改。 – 2010-04-17 11:03:47

+0

我明白了。所以相反,我應該改變我的模型以反映事物的當前狀態,然後通過正確的渠道進行更新。當我做tableview.dataSource = self時,我實現了這個方法。我可能將不得不實施beginUpdates和endUpdates,而不是在它認爲沒有進行任何更改時強制TableView執行動畫。 謝謝,我保證停止戰鬥框架:) – RickiG 2010-04-20 15:57:07

0

我不知道這是肯定的,但也許如果調用方法

- (void)setEditing:(BOOL)editing animated:(BOOL)animate 

它可能是,該commitEditingStyle方法被調用。

+0

謝謝你們,我可以看到我的問題可以被看作是如果我正在使用標準方法,對不起:) – RickiG 2010-04-17 10:14:43