iOS UITableViewCells перерабатывает строки и тег не работает
Я хотел бы обратиться за помощью в настройке тега для кнопок в ячейках. Это вопрос со ссылкой на предыдущую, которую я разместил:iOS Использование NSDictionary для загрузки данных в раздел и строки
Однако, хотя теперь я мог передавать данные динамически, моя кнопка обновления в каждой из строк, казалось, не могла получить данные и могла бы определять одно и то же название книги каждого раздела, когда выбрана какая-либо из строк в разделе.
Основываясь на том, что я прочитал до сих пор, это происходит потому, что кнопка перерабатывается, следовательно, не может определить, какая книга выбрана правильно. Я пытался установить тег:
cell.renewButton.tag = indexPath.row;
Как мой код выглядит сейчас:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{
static NSString *CellIdentifier = @"Cell";
UserCustomCell *cell = (UserCustomCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
cell.bookTitle.frame = CGRectMake(12, 0, 550, 40);
if (cell == nil) {
[[NSBundle mainBundle] loadNibNamed:@"UserCustomCell" owner:self options:nil];
cell = userCustomCell;
self.userCustomCell = nil;
cell.renewButton.tag = indexPath.row;
}
if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) {
cell.bookTitle.frame = CGRectMake(12, 0, 550, 40);
cell.renewButton.frame = CGRectMake(600, 14, 68, 24);
}
[cell.renewButton useBlackActionSheetStyle];
// ########## РЕДАКТИРОВАТЬ НАЧИНАЕТСЯ ЗДЕСЬ dataSource = [[NSMutableDictionary alloc] init]; // Это должен быть ивар
for (NSDictionary *rawItem in myArray) {
NSString *date = [rawItem objectForKey:@"date"]; // Store in the dictionary using the data as the key
NSMutableArray *section = [dataSource objectForKey:date]; // Grab the section that corresponds to the date
if (!section) { // If there is no section then create one and add it to the dataSource
section = [[NSMutableArray alloc] init];
[dataSource setObject:section forKey:date];
}
[section addObject:rawItem]; // add your object
}
self.dataSource = dataSource;
//NSLog(@"Data Source Dictionary: %@", dataSource);
NSArray *sections =[[dataSource allKeys] sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
NSString *sectionTitle = [sections objectAtIndex:indexPath.section];
NSArray *items = [dataSource objectForKey:sectionTitle];
NSDictionary *dict = [items objectAtIndex:indexPath.row];
cell.bookTitle.text = [dict objectForKey:@"name"];
cell.detail.text = [NSString stringWithFormat:@"Due Date: %@ Due Time: %@",
[dict objectForKey:@"date"], [dict objectForKey:@"time"]];
cell.renewButton.tag = indexPath.row;
return cell;
}
но это не работает вообще. Буду оооочень благодарен за любые предложения :) Спасибо !!
П.С .: Моя копия xcode не обновляется, только до версии4. Некоторые люди упоминали о сохранении статуса тега в DataModel, но он доступен только в более новых версиях. :)