Sto avendo un sacco di tempo per far funzionare tutto questo Core Data, Storyboard, trio UISearchBar insieme come dovrebbe. Avendo finalmente creato la tabella con Core Data, ristretto gli articoli con un testo di ricerca e modificato prepareForSegue, c'è ancora un singhiozzo ...Problemi nel passaggio di indexPath.row con prepareForSegue con UISearchBar
Quando faccio clic su qualsiasi elemento della tabella per andare alla vista di dettaglio, tutto va bene nel tavolo non filtrato. PrepareForSegue viene chiamato e il dettaglio appare perfettamente.
Quando eseguo una ricerca, la mia tabella viene filtrata (selezionerò l'opzione di array filtrato per ora anziché un secondo NSFetchedResultsController, ma non per mancanza di tentativi!).
Quando faccio clic su un elemento nell'elenco filtrato, viene chiamato prepareForSegue e viene spostata la vista di dettaglio, tuttavia, i dettagli vengono sempre estratti dal primo elemento nell'elenco!
Ad esempio, se ho cercato "c" e l'elenco è stato ristretto a "Charlie" e "Cookie", quando seleziono "Charlie", vedo la vista dettagliata di "Charlie". Quando seleziono "Cookie", sfortunatamente, vedo anche la vista di dettaglio per "Charlie"
Sto supponendo che il codice di preparazioneForSegue sia il problema (forse in modo errato?). Ecco il codice:
SampleTVC *sampleDetailTVC = segue.destinationViewController;
sampleDetailTVC.delegate = self;
// Store selected Role in selectedRole property
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
// self.selectedRole = [self.fetchedResultsController objectAtIndexPath:indexPath];
if (savedSearchTerm){
self.selectedRole = [self.searchResults objectAtIndex:indexPath.row];
} else {
self.selectedRole = [self.fetchedResultsController objectAtIndexPath:indexPath];
}
NSLog(@"Passing selected role (%@) to SampleTVC", self.selectedRole.name);
sampleDetailTVC.role = self.selectedRole;
Qualsiasi aiuto sarebbe apprezzato!
Quando si seleziona "Cookie", si può registrare il valori di 'self.searchResults' e' indexPath.row' nel punto in cui ottieni il ruolo? –
Quando aggiungo: if (savedSearchTerm) { self.selectedRole = [self.searchResults objectAtIndex: indexPath.row]; NSLog (@ "cosa sono i risultati di ricerca:% @ cosa è indicpath:% @", self.searchResults, indexPath.row); -------------------- Ottengo quanto segue: cosa sono i risultati di ricerca: charlie, cookie [modificato per accorciare] cosa è indexpath: (null) ----- I Stai pensando che index.path (null) potrebbe essere il problema? –
e sulla tabella non di ricerca, se registro indexPath ottengo: cosa è indexpath: 2 indici [0, 3] –