Как получить доступ и сохранить данные из отдельных ячеек в представлении коллекции? - PullRequest
0 голосов
/ 06 ноября 2018

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

Я пытаюсь сохранить первых 3 человек (или ячейки), используя UserDefaults, чтобы я мог показать их на этом втором контроллере представления. Это код, который у меня есть на данный момент:

@objc func sliderDidEndSliding(sender: UISlider) {
        var defaults = UserDefaults.standard
        array.append("\(nameLabel.text)")
        defaults.set(array, forKey: "SavedStringArray")

        let myarray = defaults.stringArray(forKey: "SavedStringArray") ?? [String]()
        print(myarray)
    }

Я не могу понять, как сделать то, что я пытаюсь сделать. В настоящее время код отображает только имя ползунка, который был изменен в последний раз и заполнен во всех трех ячейках. Это явно неверно и должно показывать три разных имени для каждой ячейки, а не одно и то же лицо в каждой. Мой вопрос: как бы я сохранил информацию из трех разных ячеек в контроллере представления?

1 Ответ

0 голосов
/ 06 ноября 2018

Ваш подход неверен. Вы не должны использовать ячейки сбора / табличного представления для хранения данных. Когда-либо.

Вы должны использовать ячейки и представления внутри них для отображения информации пользователю и для сбора информации от пользователя. В ту минуту, когда пользователь изменяет значение (нажимает клавишу возврата в текстовом поле для ввода данных, нажимает кнопку, изменяет значение ползунка и т. Д.), Вы должны собрать измененное значение и сохранить его в модели данных. Для представлений коллекций и табличных представлений массив или массив массивов - это часто все, что вам нужно для модели данных. Вы определяете структуру, которая описывает различные значения для ячейки, а затем создаете массив этих структур (для простого линейного представления коллекции / таблицы) или массив массивов (для шаблонов сетки ячеек представления коллекции или для секционированного представления таблицы). .)

Если вам нужно передать ваши данные другому контроллеру представления, вы можете просто передать объект модели данных. Если вам необходимо сохранить ваши данные, вы сохраните свой объект модели данных (обратите внимание, что UserDefaults - плохой выбор для сохранения модели данных. Он предназначен для сохранения простых настроек, таких как пользовательские настройки, не большие или сложные структуры.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...