在UINavigationBar加上edit bar button item,结合UITableView的Edit功能

添加edit bar button item 与添加add bar button item 有所不同, 可以直接使用

self.editButtonItem

下面是详细的代码:  

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.tableViewMain.delegate=self;
    self.tableViewMain.dataSource=self;
    
    
    UIBarButtonItem *add=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(add)];
    UIBarButtonItem *edit=self.editButtonItem;
    self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:add,edit, nil];
    [self fetchResults];
}

- (void)setEditing:(BOOL)editing animated:(BOOL)animated
{
    [super setEditing:editing animated:animated];
    [self.tableViewMain setEditing:editing animated:animated];
}

UITableViewDelegate:

#pragma mark -TableViewDelegate methods
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
{
    if (editingStyle==UITableViewCellEditingStyleDelete) {
        NSManagedObject *deleted=[self.fetchedResultsController objectAtIndexPath:indexPath];
        [self.managedObjectContext deleteObject:deleted];
        NSError *error;
        BOOL success;
        success=[self.managedObjectContext save:&error];
        if (!success) {
            NSLog(@"%@",[error localizedDescription]);
        }
        [self fetchResults];
        [self.tableViewMain deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationTop];
    }
}

  

  

posted @ 2012-08-16 21:27  PH  阅读(208)  评论(0)    收藏  举报