2014-09-20 3 views
1

У меня есть табличный вид, в котором перечислены контакты. При нажатии на редактирование ячеек перезагружается и представляет метки в виде текстовых входов. Мне нужно иметь кнопку сохранения в правом верхнем углу, поэтому, когда я нажимаю «Сохранить», как я могу получить обновленные входы от Cell? Поскольку действие запускается извне, мне нужно отправить сообщение в ячейку каким-то образом.Получение данных из ячейки типа формы

На данный момент я получаю данные с использованием cellForRowAtIndexPath и путем доступа к свойствам ячеек.

CustomCell *cell = [tableView dequeueReusableCellWithIdentifier:@"id "forIndexPath:editCellIdx]; 
NSString *input 1 = cell.labelOne.text; ... and so on 

Есть ли лучший способ?

+0

Я думаю, вы должны быть изменения модели сразу текст Editted. Поэтому, если пользователь решает не сохранять данные, вам необходимо отказаться от полурефлекторной модели и в основном ничего не делать. Поэтому, когда вы переходите в режим редактирования, возьмите * копию * модели и при сохранении перезапишите исходную модель с отредактированной моделью. – trojanfoe

+0

@trojanfoe У меня была подобная мысль. Вместо того, чтобы подвергать модель View. Я мог бы написать интерфейс, который будет делегировать текст после редактирования, и контроллер просмотра будет продолжать обновлять модель с помощью текста. Является ли чрезмерным использование делегата, как это, или это лучше, чем обход по крайней мере? – user88975

ответ

0

Вы можете сохранить отредактированные данные в NSMutableDictionary или NSMutableArray. А затем перезагрузите данные таблицы.

Вы можете получить отредактированные тексты TextFields из следующих метод

- (void)textFieldDidEndEditing:(UITextField *)textField 
{ 
    NSString *cellEditedText = textField.text; 
    // save this text in dictionary or array. 
} 

- (void)saveData 
{ 
    [tableview reloadData]; 
} 
Смежные вопросы