2010-04-05 35 views
1

爲了提供用戶界面供用戶添加新項目到我的表格視圖,我想添加一個新的行在我的表格在指定的位置(例如最後一行)當視圖處於編輯模式(我有一個編輯按鈕在視圖的導航欄右側)。此新行將在左側有一個添加按鈕指示器,並在右側顯示附件箭頭。當視圖不處於編輯模式時,不應顯示此添加行。添加一行到UITableView添加新項目?

我不知道我是否應該覆蓋:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{...} 

,我調用的UITableView的方法:

insertRowsAtIndexPaths:(NSArray *)indexPaths withRowAnimation: 
(UITableViewRowAnimation)animation 

插入新行?

我的理解是,這個調用可能會在表視圖中添加一個新行。表視圖的數據源來自CoreData存儲。不確定這可能會導致數據存儲和表視圖中的數據數量不一致?如果它是好的,我必須管理表格視圖中的行,我如何添加左側添加指標並將公開箭頭留給新行?

另一個問題是,如果我可以做到插入一個新行作爲添加行,我應該刪除它時,表視圖不在編輯模式?

只想知道我是否在正確的軌道上。

回答

1

– insertRowsAtIndexPaths:withRowAnimation:將向TableView添加一行。該行將存在於TableView中,直到它被移除或數據被重新加載。如果你退出編輯模式,該行的外觀將被髮送到數據源對象使用這種方法:

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

當編輯模式退出,數據源對象將被觸發,讓您有機會得到的東西回來進入一個一致的狀態。在super調用之前進行setEditing和插入和刪除行可能比處理commitEditingStyle DataSource方法的接口更容易 - 這有點奇怪。