Domanda

Ero alla ricerca di un modo per chiamare direttamente il metodo di modifica.

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

Ho tutta la mia logica per animare le cellule manipolate, di togliere dal mio allineamento modello ecc in questo metodo. E 'sempre chiamato quando un utente fendenti, aggiunge o riordina, ma vorrei chiamare manualmente / direttamente come un thread in background cambia il mio modello.

Ho costruito un NSIndexPath in questo modo:

NSIndexPath *path = [NSIndexPath indexPathForRow:i inSection:1];

non riesco proprio a capire come chiamare qualcosa come:

[self.tableview commitEditingStyle:UITableViewCellEditingStyleDelete forRowAtIndexPath:path];

Devo guadagnare l'accesso ai metodi di questo UITableView stile normale in un altro modo?

Grazie:)

È stato utile?

Soluzione

Non vedo il motivo per cui non si può chiamare tale metodo, se invece si è per il vostro codice da eseguire. La documentazione danno un tocco pesante che

- (void)setEditing:(BOOL)editing animated:(BOOL)animate

avrà l'effetto di chiamare quel metodo fonte di dati in ogni caso. Avrebbe più senso di refactoring il codice da quel metodo in un altro metodo e chiamare sia dal metodo di fonte dei dati e da altrove nel codice, se è veramente quello che vuoi fare.

Se si vuole veramente per riflettere solo i cambiamenti nel modello, quindi chiamare [tableView reloadData] -. Questo è ciò che è per

Altri suggerimenti

Non so per certo, ma forse se si chiama il metodo

- (void)setEditing:(BOOL)editing animated:(BOOL)animate

potrebbe essere, che il metodo viene chiamato commitEditingStyle.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top