Pergunta

Eu estava procurando uma maneira de chamar o método de edição diretamente.

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

Tenho toda a minha lógica para animar células manipuladas, remover da minha matriz de modelos etc. neste método. Ele está sendo chamado quando um usuário desliza, adiciona ou rearrange, mas eu gostaria de chamá -lo manualmente/diretamente à medida que um thread em segundo plano altera meu modelo.

Eu construí um NSIndexpath Like So:

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

Eu simplesmente não consigo descobrir como chamar algo como:

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

Preciso obter acesso aos métodos deste estilo de estilo simples de outra maneira?

Obrigado:)

Foi útil?

Solução

Não vejo por que você não pode chamar esse método, se tudo o que você deseja é para que seu código seja executado. Os documentos dão uma dica pesada de que

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

terá o efeito de chamar esse método de fonte de dados de qualquer maneira. Faria um melhor sentido refatorar seu código desse método em outro método e chamá -lo do método da fonte de dados e de outros lugares do seu código, se é isso que você deseja fazer.

Se você realmente deseja refletir apenas mudanças em seu modelo, ligue [tableView reloadData] - É para isso que serve.

Outras dicas

Eu não sei com certeza, mas talvez se você ligar para o método

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

Pode ser que o método CommitittitingStyle seja chamado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top