У меня есть время от времени получать все данные Core Data, Storyboard, трио UISearchBar, работая вместе как следует. Наконец, успешно построив таблицу с помощью Core Data, сузите элементы с текстом поиска и изменив готовый файл, есть еще одна икота ...Устранение неполадок indexPath.row with prepareForSegue с UISearchBar
Когда я нажимаю на любой элемент таблицы, чтобы перейти к подробному представлению, все хорошо в нефильтрованной таблице. Вызывается PrepareForSegue, и детали отображаются отлично.
Когда я выполняю поиск, моя таблица отфильтрована (теперь я буду фильтровать массив, а не второй NSFetchedResultsController, но не из-за отсутствия попыток!).
Когда я нажимаю на элемент в отфильтрованном списке, вызывается метод prepareForSegue и отображается подробный вид, однако он всегда извлекает детали из первого элемента в списке!
Например, если я искал «c», и список был сужен до «Charlie» и «Cookie», когда я выбираю «Charlie», я вижу подробный вид для «Charlie». Когда я выбираю «Cookie», я, к сожалению, также вижу подробный вид для «Charlie»
Я исхожу из того, что код prepareForSegue является проблемой (может быть, неправильно?). Вот код:
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;
Любая помощь будет оценена!
При выборе "Cookie", вы можете регистрируем значения 'self.searchResults' и' indexPath.row' в точке, где вы получаете роль? –
Когда я добавляю: if (savedSearchTerm) { self.selectedRole = [self.searchResults objectAtIndex: indexPath.row]; NSLog (@ "какие поисковые результаты:% @ что такое индексный путь:% @", self.searchResults, indexPath.row); -------------------- Я получаю следующее: какие поисковые запросы: charlie, cookie [отредактировано для сокращения], что такое индексный путь: (null) ----- I Думаю, что проблема index.path (null)? –
и в таблице без поиска, если я регистрирую indexPath, я получаю: что такое индексный путь: 2 индекса [0, 3] –