it-swarm.com.de

UITableView-Bearbeitungsmodus

Ich habe UITableView und versuche es standardmäßig im Bearbeitungsmodus zu laden. Das Problem ist, wenn diese Zeile table.editing=TRUE; meine Zeilen verschwindet, habe ich folgende Methoden implementiert:

- (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;
 }

aber ohne glück. Was soll ich machen?

41
user739509

alsAnishwies auf using

[tableView setEditing: YES animated: YES]; 

Sie müssen es jedoch in viewWillAppear view event haben, damit es funktioniert.

61
Ahmad Kayyali

versuche dies...

[tableView setEditing: YES animated: YES];
10
Anish

In ViewDidLoad schreiben

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];
    }
}

Für die Mehrfachauswahl einer Zeile

 - (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath{
    return YES;
}

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath{
    return UITableViewCellEditingStyleNone;
}

Hinweis: Es gibt drei Bearbeitungsstile wie unten

UITableViewCellEditingStyleNone,
UITableViewCellEditingStyleDelete,
UITableViewCellEditingStyleInsert

Hinweis: Und für Multiple Selection Set Selection und Editierstil in Multiple aus Attribut-Inspector.

7
Hardik Thakkar

Um ein tableView im Bearbeitungsmodus zu laden, müssen Sie setEditing(true, animated: false) in viewDidLoad() aufrufen.

Wenn Ihr Ansichtscontroller eine Unterklasse von UITableViewController ist, müssen Sie dies nicht ändern. Andernfalls, wenn Ihr View Controller eine Unterklasse von UIViewController ist, sollten Sie einen Aufruf auf diese Weise machen: tableView.setEditing(true, animated: true).

Mit Swift getestet 2.2.

2
Andrej

[self.tableView setEditing:! self.tableView.isEditing animiert: YES];

0