Я заполняю свой просмотр таблицы из массива. И этот массив создается запросом SQLite.
Поэтому в моем массиве есть объекты из моего пользовательского класса.
И я использую пользовательские ячейки в моей таблице. Как object.name
в одном слое, object.id
возле этого слоя.
Пока все хорошо. Но если я попытаюсь использовать UISearchBar, как я буду заново заполнять свою таблицу?
Это код, который я создаю для своей таблицы.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"SpeakersCell";
SpeakersCell *cell = (SpeakersCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"SpeakersCell" owner:self options:nil];
for (id currentObject in topLevelObjects) {
if ([currentObject isKindOfClass:[SpeakersCell class]]) {
cell = (SpeakersCell *) currentObject;
break;
}
}
}
// Set up the cell
ProjectAppDelegate *appDelegate = (ProjectAppDelegate *)[[UIApplication sharedApplication] delegate];
Speaker *speakerObject = (Speaker *)[appDelegate.speakers objectAtIndex:indexPath.row];
cell.lblSpeakerName.text = speaker.speakerName;
cell.lblSpeakerCity.text = speaker.speakerCity;
return cell;
}
Когда я добавляю строку поиска и определяю событие searchBar textDidChange
, я успешно получаю элементы, содержащие ключевые буквы. Но я не могу заново заполнить свою таблицу, потому что я только искал названия предметов.
Учебники, по которым я получил помощь, построены на ячейках по умолчанию, а источником данных tableview является массив NSString. Но мой массив - это массив NSObject, это моя проблема.
Я рассматриваю получение индексов искомых элементов, но как я могу использовать эти значения? У вас есть идеи или какие-либо ссылки?