#ios4 #uitableview #uitextfield
#ios4 #uitableview #uitextfield
Вопрос:
Я создал UITableView, который функционирует следующим образом раздел 0 2 пользовательские ячейки (Имя, фамилия с UITextFields) раздел 1 (нажмите кнопку в заголовке, вставьте новую ячейку с текстовым полем кнопка для изменения заголовка) раздел 2 (нажмите кнопку в заголовке, вставьте новую ячейку с текстовым полем кнопка для изменения заголовка) раздел 3 (нажмите кнопку в заголовке, вставьте новую ячейку с текстовым полем кнопка для изменения заголовка). Теперь предположим, что я создаю 3-3 строки в каждом разделе, кроме раздела 0. Как мне динамически получать значения всех текстовых полей?
Ответ №1:
У вас есть источник данных для вашего TableView. Этот источник должен автоматически обновляться каждый раз, когда вы вставляете новую ячейку. Итак, если вы выполняете итерацию по массиву, содержащему ваш источник данных, где-то также должны быть значения текстового поля.
Если это не так, вам следует подумать о том, как вы добавляете новые ячейки. Обычно в вашем источнике данных должно быть зарезервировано некоторое пространство для данных в текстовом поле. Если вы создадите новую ячейку сейчас, пространство, зарезервированное для данных текстового поля, должно быть обновлено новыми данными.
Если я вас правильно понял, у вас есть ячейка с меткой, текстовым полем и кнопкой. вы создаете ячейку, вводите некоторый текст в текстовое поле и затем нажимаете кнопку. затем содержимое текстового поля должно отображаться в метке.
Если я ошибаюсь, пожалуйста, направьте меня в правильном направлении. Может быть, вы можете опубликовать несколько скриншотов или что-то в этомроде.
!!!!! Неправильный подход!!!!!!!
Выполните итерацию по своим ячейкам, которые вы получаете из метода
[tableView visibleCells];
а затем получить значение из
Текстовое поле, содержащееся в ячейке черезNSArray *myArray = [[NSArray alloc] initWithArray: [tableView
Видимые ячейки]];
[[(YourCellSubClass*)myArray textfield] текст];Я не тестировал это, но я думаю, что это должно сработать.
!!!!!! Конец неправильного подхода!!!!!!
Комментарии:
1. @Maverick1st что, если у меня больше 25 ячеек?
2. Хорошо, я только что узнал, что мой ответ был полным дерьмом. Я отредактирую его с лучшим ответом, который у меня есть сейчас. 🙂
3. @maverick1st ты идешь в неправильном направлении. Я создаю пользовательский добавить контакт, подобный экранному приложению contatcs для iphone. Но немного по-другому. У меня 1-й раздел статический. в 2,3,4 разделе есть вид заголовка раздела. В представлении заголовка есть кнопка, с помощью которой я добавляю новую ячейку. Итак, для раздела 2 у меня есть массив, подобный phonelist, аналогично для раздела 3 emaillist и для 4 других элементов. Итак, когда я нажимаю на кнопку заголовка, я показываю таблицу с некоторыми параметрами. Когда выбран один из вариантов, я добавляю выделенный текст в массив, соответствующий выбору заголовка раздела.
4. @Rahul И в какой момент вы хотите получить содержимое текстовых полей?
5. Одним нажатием кнопки. Предположим, я хочу сохранить полную информацию в базе данных sqlite.
Ответ №2:
вы должны установить делегат UITextField
того ViewController
, в котором у вас есть UITableView
. затем переопределите этот метод, чтобы получить текст сфокусированного текстового поля textField:DidEndEditing
. Также вы можете установить теги для каждой из них UITextfield
, чтобы различать их.