TableViewController editingStyle和插入

Pau*_*sen 1 iphone uitableview

http://developer.apple.com/library/ios/#documentation/userexperience/conceptual/TableView_iPhone/ManageInsertDeleteRow/ManageInsertDeleteRow.html

我需要插入和删除选项,所以......

self.navigationItem.rightBarButtonItem = self.editButtonItem;
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addItem:)];
self.navigationItem.leftBarButtonItem = addButton;
Run Code Online (Sandbox Code Playgroud)

到目前为止,这一切都很好.我完成了"删除"编程,但是"插入"有问题

   - (void)addItem:sender {
}
Run Code Online (Sandbox Code Playgroud)

我在addItem中添加什么来启动"编辑模式"并将我的EditingStyle更改为UITableViewCellEditingStyleInsert?在Apple库中看到的iteminputcontroller到底是什么?对此没有任何解释,帮助是模糊的在线:(

Jha*_*iya 5

调用tableViewaddItem方法内部的setEditing函数.

- (void)setEditing:(BOOL)editing animated:(BOOL)animate
Run Code Online (Sandbox Code Playgroud)

应该如下.

- (void)addItem:sender {
   [myTableview setEditing:YES animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

UITableViewCellEditingStyleInsert从你的editingStyleForRowAtIndexPath方法返回.

     - (UITableViewCellEditingStyle)tableView:(UITableView *)aTableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath {

        if(someCondtion){
        return UITableViewCellEditingStyleInsert;
        } else {
        return UITableViewCellEditingStyleDelete;
        }
}
Run Code Online (Sandbox Code Playgroud)

根据编辑操作删除或插入更新数据模型.

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

    if (editingStyle == UITableViewCellEditingStyleDelete) {
       //put code to handle deletion
       [myTableView reloadData];
    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
       //put code to handle insertion
       [myTableView reloadData];
    }
}
Run Code Online (Sandbox Code Playgroud)