J'ai UITableView
et j'essaye de le charger par défaut en mode édition. Le problème est que lorsque cette ligne table.editing=TRUE;
mes lignes disparaissent, j'ai implémenté cette méthode:
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
{
return UITableViewCellEditingStyleDelete;
}
- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath
{
return NO;
}
mais sans chance. Que devrais-je faire?
commeAnisha indiqué d'utiliser
[tableView setEditing: YES animated: YES];
Mais vous devez l'avoir dans l'événement viewWillAppear
view pour que cela fonctionne.
essaye ça...
[tableView setEditing: YES animated: YES];
Dans ViewDidLoad, écrivez
UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style: UIBarButtonItemStyleBordered target:self action:@selector(addORDoneRows)];
[self.navigationItem setLeftBarButtonItem:addButton];
addORDoneRow
- (void)addORDoneRows
{
if(self.editing)
{
[super setEditing:NO animated:NO];
[_dbSongsTblView setEditing:NO animated:NO];
[_dbSongsTblView reloadData];
[self.navigationItem.leftBarButtonItem setTitle:@"Edit"];
[self.navigationItem.leftBarButtonItem setStyle:UIBarButtonItemStylePlain];
}
else
{
[super setEditing:YES animated:YES];
[_dbSongsTblView setEditing:YES animated:YES];
[_dbSongsTblView reloadData];
[self.navigationItem.leftBarButtonItem setTitle:@"Done"];
[self.navigationItem.leftBarButtonItem setStyle:UIBarButtonItemStyleDone];
}
}
Pour plusieurs sélections de rangées
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
return YES;
}
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
return UITableViewCellEditingStyleNone;
}
Remarque: Il existe trois styles d'édition comme ci-dessous
UITableViewCellEditingStyleNone,
UITableViewCellEditingStyleDelete,
UITableViewCellEditingStyleInsert
Remarque: Et pour plusieurs sélections, définissez Selection and Editing Style to Multiple depuis l'inspecteur d'attributs
Pour charger une table en mode édition, vous devez appeler setEditing(true, animated: false)
dans viewDidLoad()
.
Si votre contrôleur de vue est une sous-classe de UITableViewController
, il n'est pas nécessaire de changer, effectuez simplement l'appel ci-dessus. Sinon, si votre contrôleur de vue est une sous-classe de UIViewController, vous devez alors effectuer un appel de cette manière: tableView.setEditing(true, animated: true)
.
Testé avec Swift 2.2.
[self.tableView setEditing:! self.tableView.isEditing animé: OUI];