2015-10-08 3 views
0

Я делаю приложение, использующее основные данные, и у меня есть 2 текстовых поля и кнопка «Сохранить данные». Поэтому я хочу, когда кнопка нажата данные из текстовых полей отображается на новой строке в виде таблицы controller.In Xcode с помощью Objective C.Как добавить строку в контроллер табличного представления (с данными из текстового поля) при нажатии кнопки

Image просмотров - http://i.stack.imgur.com/7UrMO.png

спасибо Новичок программирования

+0

Вы использовали методы tableviewdelegate? –

ответ

2

Просто добавьте новые данные из текстовых полей в таблицу просмотра источника данных (в основном это будет изменяемый массив или словарь). Затем вызовите reloadData в виде таблицы.

  1. Добавить запись из текстовых полей в источник данных таблицы просмотра.

    [yourMutableArray addObject:[textField1 text]]; 
    
  2. вызов [yourTableView reloadData];

+0

По моему мнению, его не очень хорошая идея перезагрузить весь tableview при вставке новой строки лучше использовать свой путь DataSource inserRowAtIndexpath: –

+0

Не лучшее решение, но оно работает очень хорошо. Существует не только одно решение. Обычно я использую этот путь и никогда не испытываю проблем. – Lorenzo

+0

@PiyushPatel: Хотя я согласен с вашей точкой, нет вреда в «Перезагрузке табличного представления» в случае небольших обновлений. И в этом вопросе Мухаммед Мафаулла попросил загрузить содержимое из двух текстовых полей, которые, по моему мнению, являются незначительными обновлениями. Надеюсь, у меня есть смысл! –

1

При нажатии кнопки «Сохранить данные», добавьте контент, который вы хотите отобразить в your_array, который вы используете для отображения tableview.

[your_array addObject:your_textfield_string]; 

После этого перезагрузить таблицу еще раз с помощью [tableview reloadData]:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ 
      [tableview reloadData]; 

       dispatch_async(dispatch_get_main_queue(), ^{ 

        ////TO SCROLL THE TABLE TO NEWLY ADDED ROW 
        int lastRowNumber = [tableview numberOfRowsInSection:0] - 1; 

        NSIndexPath* ip = [NSIndexPath indexPathForRow:lastRowNumber inSection:0]; 
        [tableview scrollToRowAtIndexPath:ip atScrollPosition:UITableViewScrollPositionTop animated:NO]; 
       }); 

      }); 
3

Выполните следующие действия:

Шаг 1: Обновление модели (используется для рисования вашей ячейки) с TextFields текстом. Что-то вроде этого:

[self.items addObject:<Object_With_Both_TextFields_Text>] 

Шаг 2: На кнопку крана, вставить новую строку, как это:

NSIndexPath *newIndexPath = [NSIndexPath indexPathForRow:self.items.count - 1 inSection:0]; 
    [self.tableView beginUpdates]; 
    [self.tableView insertRowsAtIndexPaths:[NSArray arrayWithObject:newIndexPath] withRowAnimation:UITableViewRowAnimationBottom]; 
    [self.tableView endUpdates]; 
+0

Где я могу ввести этот код в контроллер просмотра или контроллер табличного представления и где в этих файлах (.h или .m). –

+0

Это должно идти в .m вашего класса делегатов UITableViewControler. – Abhinav

+0

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