Мне трудно найти, как правильно связать данные для UITableViews. В настоящее время у меня есть табличное представление, в котором есть несколько пользовательских ячеек, большинство из которых простые, а одна - нет. Кроме того, я использую ячейки по мере необходимости, поэтому в какой-то момент данные из любой данной ячейки могут прокрутиться за пределы экрана, и в этот момент данные будут потеряны с точки зрения пользовательского интерфейса. Мне нужно знать наилучший способ (лучшие практики), чтобы получить эту информацию и сохранить ее.
Я обычно могу показать около 4-5 клеток в любой момент времени.
В настоящее время все мои данные вводятся через текстовые поля (хотя это может скоро измениться, так как я могу добавить тумблер в одну из ячеек). Каждый раз, когда пользователь касается текстового поля, вызывается textFieldDidEndEditing. Затем я сохраняю данные, основанные на некоторой информации из текстового поля (например, тег или текст-заполнитель). Я делаю это, потому что мне нужно получить данные и сохранить их до того, как эта ячейка будет прокручиваться из поля зрения, и в этот момент я больше не смогу сохранять данные, получая текст из UITextField.
Я не могу помочь, но верю, что есть лучший способ сделать это. Моей первой мыслью было найти способ узнать, что данная ячейка собирается прокрутиться из поля зрения (и, таким образом, вероятно, потеряет свое значение, поскольку она будет использоваться повторно), и просто сохранить данные в этой точке. Я не могу найти ничего в ссылках на классы UITableViewController, UITableView или UITableViewCell, которые намекают на что-либо подобное. Итак, я предполагаю, что это не тот путь.
Другая мысль, которая у меня была, была привязка данных, которая кажется наиболее подходящей, но я не могу найти хороших примеров этого. Мне нужен способ привязки данных к пользовательским объектам.
Например, у меня есть объект, скажем, Контакт. Этот объект имеет строковое поле для имени, строковое поле для заметок и поле адреса (другой объект), которое имеет собственный набор полей (например, улица1, улица2, город, штат, почтовый индекс). Я хотел бы связать эти значения с табличным представлением так, чтобы, когда поле было отредактировано, оно сохранялось в моем внутреннем объекте.
Q1 : Есть ли способ сделать это?
К вашему сведению, строковые поля для Контакта будут иметь общие типы ячеек, но Адрес получит свою собственную пользовательскую ячейку со всеми текстовыми полями в ней. Я создаю не разные ячейки для каждого поля в адресе, а одну настраиваемую ячейку с 4 или 5 текстовыми полями.
Чтобы усложнить ситуацию немного сложнее, мне, возможно, придется поменять пользовательскую ячейку адреса, чтобы она соответствовала ячейке другой страны. Поэтому теперь мне нужно привязать объект Address (ref) к новой пользовательской ячейке адреса.
Q2 : Изменит ли это ответ на вопрос Q1 выше?
Опять же, я ищу лучший способ сохранить значения из пользовательских UITableViewCells с UITextFields, и я должен учитывать тот факт, что данные могут прокручиваться с экрана, и ячейка может использоваться повторно, поэтому не все данные, которые я Потребность доступна для меня ко времени выхода пользователя из UITableView.
Любая помощь или руководство с благодарностью. Даже просто указав мне на хороший ресурс, который мне еще предстоит найти.