Как получить данные ячейки динамической таблицы. У меня есть табличный вид, подобный этому. Все ячейки создаются динамически. Я хочу получить все текстовые данные (аромат и%) при нажатии кнопки отправки. Проблема заключалась в том, что я динамически создавал текст. Поэтому я не могу индивидуально идентифицировать текстовое поле. Как получить данные из динамического текстового поля?Как читать данные из динамической ячейки ios
ответ
Вы можете установить tag
на ваш textfield
и по этому тегу вы можете получить к ним доступ.
Например,
UITextField *textField = [[UITextField alloc]initWithFrame:CGRectMake(0, 0, 200, 30)];
textField.tag = 100; //set tag
UITextField *textField1 = (UITextField*)[self.view viewWithTag:100]; //retreive by tag
Так, как это вы можете управлять динамически из textfields
.
Обновление:
затем установить две метки 100 и 101 соответственно. Теперь вы должны получили клетку первой и из этой ячейки вы можете получили ваш textfields
так далее нажмите кнопки первым есть все ячейки, то вы можете получили textfield
из этой клетки, как:
UITextField *textField = (UITextField*)[cell viewWithTag:100];
Итак, вы должны есть ячейки первыми в щелчке кнопки.
В этой причине. все текстовые поля flavor получают тег как 100. Итак, как получить значение в функции submitbuttonPresed. –
набор различных тегов для каждого текстового поля !!!!! вы можете установить 'indexPath.row' как тег также для уникальной идентификации! – Lion
У вас есть четыре текстовых поля в одной ячейке или одно текстовое поле на одну ячейку? – Lion
Набор тегов для вашего UITextField в пользовательской ячейке
For eg.
cell.lblFlavour.tag = indexPath.row;
cell.lblPercent.tag = indexPath.row;
Теперь, получить доступ к UITextField на основе вашего indexPath
Используйте tag
свойство для идентификации каждого компонента UI
однозначно. Назначьте то же самое свойство tag
, где вы создаете textFields
и button
каждой строке, а затем после изменения tag
значение для следующей строки и получите их с помощью кода.
Чтобы установить tag
:
self.yourTextfield.tag = 100;
self.yourbutton.tag = 100;
// set action method to uibutton
[cell.yourButton addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
Чтобы получить UI
компоненты, используя tag
свойства:
-(IBAction)buttonPressed:(id)sender{
// here get all ui component using tag
UIButton *button = (UIButton *)sender;
NSLog(@"%d", [button tag]);
}
или вы можете использовать метод didSelectRowAtIndexPath
, чтобы получить значения см код:
- (void) tableView: (UITableView *) tableView didSelectRowAtIndexPath: (NSIndexPath *) indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
NSLog(@"getting index path %@",indexPath);
NSLog(@"getting index path %@",cell.yourTextField.text);
}
Основная идея UITableView
- хранить данные в источник данных, а не в cell. Когда вы нажимаете кнопку «+» на панели навигации, вы должны добавить новый элемент в массив, а затем вызвать [tableView reloadData]
. Таким образом, UITableView
просто представляют данные из массива. И когда будет нажата кнопка отправки, вы просто перечисляете массив источника данных и получаете весь текст из каждой строки.
Когда вы нажимаете текст в текстовое поле внутри ячейки, вы можете использовать delegates
или blocks
для хранения данных в массиве.
попытка ниже код:
При нажатии на кнопку Submit
for (int i=0; i < [[tableView visibleCells] count]; i++)
{
//yourArrayname is the number of rows in the UITableView /Or UITableView visible cells
NSIndexPath *indexPath = [NSIndexPath indexPathForRow: i inSection: 0];
CustomTableViewCell *cell = [tblExperience cellForRowAtIndexPath:indexPath];
for (UIView *view in cell.contentView.subviews){
if ([view isKindOfClass:[UITextField class]]){
UITextField* CurrentTextField = (UITextField *)view;
NSLog(@"val %d %@",i,CurrentTextField.text);
[finalArray addObject:CurrentTextField.text];
}
}
}
Я пробовал этот код. Но стек приложения в этом коде. Это занимает больше памяти и времени выполнения. –
Присвоить динамические теги на TextFields, реализовать делегаты TextField и сохранить данные в массиве, когда текстовое поле заканчивает редактирование. Что-то вроде этого
-(void)textFieldDidEndEditing:(UITextField *)textField {
[_array insertObject:textField.text atIndex:textField.tag];
}
- 1. iOS Содержимое динамической ячейки
- 2. iOS: Добавление массива для создания динамической ячейки
- 3. читать константу из ячейки
- 4. Как читать данные ячейки из документа Excel с объективом c
- 5. Ширина динамической ячейки колонок
- 6. Содержимое динамической ячейки UITableView
- 7. Ограничения настройки для динамической ячейки
- 8. Как читать данные динамической формы Ребенок в Flex?
- 9. Excel-C#: Как читать формулы из ячейки?
- 10. как читать данные из одного столбца datagridview
- 11. Как я могу читать данные Google Analytics из приложения iOS?
- 12. Расширение WatchKit: как читать данные из приложения хоста iOS?
- 13. Получить значение каждой ячейки из таблицы динамической
- 14. Как читать данные из файла?
- 15. Как читать данные из QTableWidget?
- 16. Как читать данные из datastream
- 17. Как читать данные из NSDocumentDirectory
- 18. Как читать данные из формы?
- 19. Как читать данные из I2C
- 20. Как читать данные из StreamingOutput
- 21. Как читать данные из URL?
- 22. Как читать данные из UART
- 23. Как читать данные из combobox
- 24. Как читать данные из Javascript
- 25. как читать данные из ViewModel
- 26. Как читать данные из xml?
- 27. Как читать данные из сети
- 28. Как получить данные из ячейки?
- 29. Как собрать данные из динамической таблицы HTML
- 30. Как захватить данные из этой динамической формы
где вы создаете текстовое поле? в 'cellForRowAtIndexpath'? – Lion
логика использования используется метод подачи делегата с использованием текстового объекта и строка сохранения после нажатия кнопки, которая используется. text filed method записать файл соты. –
Показать свой код. Как вы динамически загружаете данные в таблицу. –