Как я могу добавить кнопки вставки и удаления, предоставляемые UITableView setEditing? - PullRequest
0 голосов
/ 14 января 2012

Я хочу добавить кнопки вставки и удаления для отдельных ячеек в табличном представлении.

Следующий код работает нормально для удаления для вставки, также я хочу, чтобы кнопка не была в навигации.

- (void)viewDidLoad {
    [super viewDidLoad];

    card = [[NSMutableArray alloc]initWithObjects:@"card1",@"Card2",@"card3",@"card4",nil];
    self.navigationItem.leftBarButtonItem = self.editButtonItem;
    UIBarButtonItem *rightButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd target:self action:@selector(addNewItem)];
    self.navigationItem.rightBarButtonItem = rightButton;


    // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
    // self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {

    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the row from the data source.
        [card removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
    }   
    else if (editingStyle == UITableViewCellEditingStyleInsert) {
        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view.
    }   
}

Ответы [ 2 ]

1 голос
/ 14 января 2012

Чтобы избавиться от кнопки редактирования на панели навигации, избавьтесь от этой строки:

self.navigationItem.leftBarButtonItem = self.editButtonItem;

Затем создайте свою собственную кнопку и с ее действием вызовите [tableview setEditing:] самостоятельно.

Toвключить кнопки удаления для определенных ячеек, а не для других, реализовать метод делегата просмотра таблицы:

tableView:editingStyleForRowAtIndexPath:

и вернуть UITableViewCellEditingStyleNone для всех строк, для которых кнопка удаления не требуется отображать в режиме редактирования, и UITableViewCellEditingStyleDelete для тех, кого вы хотите.

0 голосов
/ 14 января 2012

Что именно вы ищете?Вы хотите, чтобы кнопка редактирования отображалась на панели навигации?

Мне кажется, у вас уже должно быть это:

self.navigationItem.leftBarButtonItem = self.editButtonItem;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...