Я пытаюсь настроить функцию «Панель поиска и контроллер отображения» для работы в приложении для iOS. Я могу NSLog в ответ на поисковый запрос и жесткий код в новом массиве, но я не могу получить табличное представление для повторного заполнения. У меня есть следующее для ответа пользователя на кнопку поиска:
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar{
NSLog(@"You clicked the search bar");
NSMutableArray *filteredResults=[[NSMutableArray alloc] init];
Person *filteredPerson=[[Person alloc] init];
filteredPerson.firstName=@"Josie - here i am";
[filteredResults addObject:filteredPerson];
_objects=filteredResults;
self.tableView.dataSource = _objects;
[self.tableView reloadData];
}
Буду признателен за любые идеи по созданию этого заселения.
ТНХ
edit # 1
Похоже, что это заполняет _objects NSMutableArray:
- (void)insertNewObject:(id)sender
{
if (!_objects) {
_objects = [[NSMutableArray alloc] init];
}
[_objects insertObject:[NSDate date] atIndex:0];
NSIndexPath *indexPath = [NSIndexPath indexPathForRow:0 inSection:0];
[self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationAutomatic];
}
Должен ли я просто создать новый _objects и использовать insertNewObject вместо кода addObject, который у меня есть выше? Будет ли это обходить необходимость иметь дело со свойством dataSource табличного представления?
редактировать 2
за @ йен
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
}
/*
NSDate *object = [_objects objectAtIndex:indexPath.row];
cell.textLabel.text = [object description];
*/
Person *rowPerson = [_objects objectAtIndex:indexPath.row];
cell.textLabel.text = [rowPerson firstName];
return cell;
}
1020 * ТНХ *