UITextField случайным образом повторно использует текст в табличном представлении - PullRequest
0 голосов
/ 24 ноября 2011

У меня проблемы с таблицей, в каждой ячейке которой есть UITextFields. Я заметил, что текст по-прежнему случайно используется в неправильных ячейках, хотя, похоже, я правильно его сохраняю.

- (void) textFieldDidEndEditing:(UITextField *)textField{
    if (textField == temperatureTextField){
        [self.vitalsDictionary setObject:self.temperatureTextField.text forKey:@"temperature"];
    }
    else if (textField == pulseTextField){
        [self.vitalsDictionary setObject:self.temperatureTextField.text forKey:@"pulse"];
    }
    else if (textField == respiratoryRateTextField){
        [self.vitalsDictionary setObject:self.temperatureTextField.text forKey:@"respiratory_rate"];
    }
}

CellForRowAtIndex:

        switch (indexPath.row) {
            case 0:
                cell.vitalsLabel.text = @"Temperature";
                cell.textField.text = [self.vitalsDictionary objectForKey:@"temperature"];
                self.temperatureTextField = cell.textField;
                break;
            case 1:
                cell.vitalsLabel.text = @"Pulse";
                cell.textField.text = [self.vitalsDictionary objectForKey:@"pulse"];
                self.pulseTextField = cell.textField;
                break;
            case 3:
                cell.vitalsLabel.text = @"Respiratory Rate";
                cell.textField.text = [self.vitalsDictionary objectForKey:@"respiratory_rate"];
                self.respiratoryRateTextField = cell.textField;
                break;

1 Ответ

3 голосов
/ 24 ноября 2011

Похож на простые опечатки в textFieldDidEndEditing:, где вы всегда сохраняете значение из temperatureTextFieldИзмените свой код на:

- (void) textFieldDidEndEditing:(UITextField *)textField{
    if (textField == temperatureTextField){
        [self.vitalsDictionary setObject:self.temperatureTextField.text forKey:@"temperature"];
    }
    else if (textField == pulseTextField){
        [self.vitalsDictionary setObject:self.pulseTextField.text forKey:@"pulse"];
    }
    else if (textField == respiratoryRateTextField){
        [self.vitalsDictionary setObject:self.respiratoryRateTextField.text forKey:@"respiratory_rate"];
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...