2012-01-02 10 views
8

Vorrei selezionare una cella in una tabellaView. Funziona correttamente utilizzando questo codice, ma una volta selezionato a livello di programmazione non attiva un evento didSelectRowAtIndexPath. Come posso attivarlo?evento didSelectRowAtIndexPath non attivato quando si seleziona la riga a livello di programmazione

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 

risposta

22

Si sta lavorando come documentato:

chiamata a questo metodo non causa il delegato per ricevere un messaggio tableView:willSelectRowAtIndexPath: o tableView:didSelectRowAtIndexPath:, né saranno inviare UITableViewSelectionDidChangeNotification notifiche agli osservatori.

chiamata da soli dopo aver selezionato il vostro cellulare:

NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0]; 

[self tableView:self.mainTable willSelectRowAtIndexPath:indexPath]; 
[self.mainTable selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
[self tableView:self.mainTable didSelectRowAtIndexPath:indexPath]; 
+0

di lavoro, grazie per l'aiuto – Jaume

+0

Per i futuri viaggiatori: Questa è una grande spiegazione del perché questo non funziona, ma credo che questo è un altro soluzione completa: http://stackoverflow.com/questions/2305781/iphone-didselectrowatindexpath-non-invoked – kbpontius

Problemi correlati