Я разбираю идентификатор продукта через JSON, который затем переводится в подробный вид и помещается в URL-адрес для разбора более подробной информации о выбранном продукте, но похоже, что didSelectRowAtIndexPath
возвращает неправильную индексную таблицу, потому что каждый раз, когда я нажимаю строка не загружает продукт для подробного представления, получает идентификатор продукта строки, которая была восстановлена последним.Неверный indexPath для didSelectRowAtIndex
Например, у меня есть 5 строк. Моя логика правильно анализирует все идентификаторы для каждой строки (строка 1, строка 2, строка 3, строка 4, строка 5). Я знаю, что попал в первую строку, потому что я хочу получить информацию, связанную с строкой 1, но вместо информации первой строки подробное представление получает команду для анализа информации для строки 5, потому что это последний идентификатор, который был разобран, а затем отображает неправильная информация.
Я не знаю, как сделать метод didSelectRowAtIndexPath
получить правильную информацию для правильной строки.
Вот мой код для didSelectRowAtIndexPath
:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
UIStoryboard *iPhone = [UIStoryboard storyboardWithName:@"Main_iPhone" bundle:nil];
CJArtikelDetailViewController *artikelView = [iPhone instantiateViewControllerWithIdentifier:@"detail"];
NSString *detail = [NSString stringWithFormat:@"%@", wareID];
artikelView.productID = detail;
[self.navigationController pushViewController:artikelView animated:YES];
[neuheitenTableView deselectRowAtIndexPath:indexPath animated:YES];
NSLog(@"IndexPath: %@", [indexPath description]);
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *neuheitenCell = @"neuheitenCell";
CJHomeTableCell *cell = [tableView dequeueReusableCellWithIdentifier:neuheitenCell];
/*
NSNumber *preis = [[arrayArtikelPreis objectAtIndex:indexPath.row] objectForKey:@"preis"];
NSMutableString *test = [NSMutableString stringWithFormat:@"€ %@", preis];
cell.artikelPreis.text = test;
*/
NSString *imageString = [[arrayNeuheiten objectAtIndex:indexPath.row] objectForKey:@"bild"];
//NSLog(@"BildURL: %@", imageString);
NSURL *imageURL = [NSURL URLWithString:imageString];
[cell.artikelImage setImageWithURL:imageURL placeholderImage:[UIImage imageNamed:@""]];
NSDictionary *object = [arrayNeuheiten objectAtIndex:indexPath.row];
//NSLog(@"%@", object);
wareID = [object objectForKey:@"ware_id"];
NSLog(@"Waren ID: %@", wareID);
cell.artikelName.text = [object objectForKey:@"name"];
cell.artikelHersteller.text = [object objectForKey:@"lieferant_name"];
return cell;
}
Я должен сделать метод как-то определить, какая строка была выбрана, но я не знаю, как и не может найти информацию об этом в документации.
Заранее благодарим за любую помощь!
indexPath.row не работают для вас? –
indexPath.row где? –
Что такое wareId здесь? можете ли вы опубликовать код, в котором вы присваиваете значение wareId –