Я чертовски долго добиваюсь, чтобы все это трио Core Data, Storyboard и UISearchBar работало вместе, как должно. Наконец, успешно построив таблицу с помощью Core Data, сузив элементы с помощью Search Text и изменив prepareForSegue, остается одна заминка...
Когда я нажимаю на любой элемент в таблице, чтобы перейти к подробному представлению, все нормально в нефильтрованной таблице. Вызывается 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;
Будем признательны за любую помощь!