В дополнение к правильному ответу @ Barum относительно доступа к текстовым полям у вас также есть проблема с созданием ячеек.Вы удаляете из кэша ячейки, но я не вижу, чтобы ваш код создавал новую ячейку, если снятие очереди возвращает ноль.Вам необходимо сделать следующее:
else if (tableView == self.vitalsTableView) {
if ([indexPath row] == 2) {
CellIdentifier = @"bloodPressureCell";
BloodPressureTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
// create cell if nothing dequeued
cell = [[BloodPressureTableViewCell alloc] init...]; // use an appropriate initializer
cell.textField1.tag = MyTextFieldTagBloodPressure1;
cell.textField2.tag = MyTextFieldTagBloodPressure2;
}
// configure the cell
cell.textField1.text = [self.vitalsDictionary objectForKey:@"blood_pressure_1"];
cell.textField2.text = [self.vitalsDictionary objectForKey:@"blood_pressure_2"];
return cell;
}
// do the same for all cell types
Примечание. В приведенном выше примере предполагается, что вы определяете перечисление для значений тегов.Я рекомендую это, поскольку это делает код более читабельным, и вам не нужно будет помнить, какое целое число является каким типом поля.