2011-09-27 36 views
1

我有一個定製的UITableViewCell,它總是有一個刪除按鈕。如何在不使用commitEditingStyle的情況下刪除自定義的UITableViewCell?

當按下刪除按鈕時,當前的設計是以確認/否的方式閃爍確認刪除的警報。

到目前爲止,所有這些都在起作用。

問題是,實際按'是'不會更新UITableView。它會從模型中刪除數據,但該行仍然存在。

[table beginUpdates]; 

//modify model code goes here 

[table deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationLeft]; 

[table endUpdates]; 

[table reloadData]; 

所以上面的代碼將更新模型,但不是視圖。我可以告訴大家,該模型被更新,這是因爲:

(A)試圖刪除同一小區再次導致崩潰

(B)移動到另一個畫面,回來在小區結果被刪除

我想(B)的結果,而不必離開屏幕。

我不想使用commitEditingSyle,除非在用戶不知道他們正在編輯的情況下有辦法做到這一點。我當然不希望標準刪除按鈕或滑動刪除功能。

回答

1

據我所知,你刪除了你的模型。
在情況B中,視圖將再次出現,重新載入您的數據並構建UITableView。

當您刪除模型時,是否將其從集合中刪除?我想不是。您的應用程序將使用相同的數據重建視圖(重新加載數據時,您的模型不會從內存中移除)。

你的流程應該如下:

View loads/appears 
    Load Data 
    Load table 

Model Delete Action 
    Delete Data 
    (Re)Load Data 
    Load table 

我不知道,但我想你忘記重新加載數據。

另一個祕訣:
你應該使用幻燈片中刪除。 它是人機界面指南(HIG)中定義的標準

+0

我想弄清楚在幾個月前我是如何解決這個問題的。如果我記得,它非常簡單 - 我正在重新裝上錯誤的桌子! – kraftydevil

+0

我同意你在幻燈片上的標準,但是,顧客並不想要這個:( – kraftydevil

+0

)如果你重新加載錯誤的表格,我的假設是正確的。 –

相關問題