Вам следует обновить источник данных, а затем при необходимости вы можете снова перенастроить ячейку.
Если ячейка отключена от экрана, она должна автоматически обновляться в вашей реализации tableView:cellForRowAtIndexPath:
, когда она снова станет видимой.
Если вы хотите принудительно обновить ее, и она видна вамможно:
Звонить reloadData
Звонить reloadRowsAtIndexPaths:withRowAnimation:
Звонить cellForRowAtIndexPath:
и настройте его.
Для 2 + 3 вам нужно будет сохранить ссылку на indexPath ячейки, которая вызвала лист действий.
Если вы выберете 3, томожет помочь настроить ваш метод tableView:cellForRowAtIndexPath:
следующим образом:
- (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];
}
[self configureCell:cell atIndexPath:indexPath];
return cell;
}
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath;
{
//..configure label etc here
}
Выделив configureCell:atIndexPath:
, вы можете использовать тот же код для настройки ячейки.
Например, вы можете позвонить
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex
{
if (actionSheet == self.smokingStatusActionSheet){
switch (buttonIndex) {
case 0:
[self.vitalsDictionary setObject:@"daily_smoker" forKey:@"smoking_status"];
break;
case 1:
[self.vitalsDictionary setObject:@"nondaily_smoker" forKey:@"smoking_status"];
break;
default:
break;
}
}
NSIndexPath *indexPath = self.selectIndex;
UITableViewCell *cell = [self.tableView cellForRowAtPath:indexPath];
[self configureCell:cell atIndexPath:indexPath];
}