Быстро выберите ячейку UITableView, чтобы вставить данные в массив, и отмените выбор, чтобы удалить данные из массива. - PullRequest
0 голосов
/ 31 октября 2019

В моем случае я загружаю данные JSON в tableview с помощью codable. Здесь доступны опции Tableview select и unselect в зависимости от выбора Мне нужно сохранить выбранные данные ячейки Tableview JSON в массив и отменить выбор ячейки Tableview, данные JSON необходимо удалить из этого массива. Сохраненные значения array, которые я собираюсь использовать в другом viewcontroller. Используя приведенный ниже код, я могу store, но значения, добавленные с optionals, также не знают, как удалить процесс. Пожалуйста, помогите мне решить эту проблему!

JSON

{
    "status": true,
    "data": [
        {
            "userid": "1",
            "firstname": "mark",
            "designation": "junior",
            "profileimage": "https://s3.amazonaws.com/.jpg"
        },
        {
            "userid": "2",
            "firstname": "Saji",
            "designation": "senior",
            "profileimage": "https://s3.amazonaws.com/.jpg"
        }
   ]
} 

JSON Codable

struct Root: Codable {
    let status: Bool
    let data: [Datum]
}

struct Datum: Codable {
    let userid, firstname, designation: String?
    let profileimage: String?
}

MyКодовая база

var sessionData = [Datum]() // Data Store based on check and uncheck
var studentsData = [Datum]() // JSON data for tableview List

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return self.studentsData.count
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell:MyCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! MyCustomCell
    let item = self.studentsData[indexPath.row]
    cell.nameCellLabel.text = item.firstname
    cell.subtitleCellLabel.text = item.designation
    return cell
}

 func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    tableView.deselectRow(at: indexPath, animated: true)
    let item = self.studentsData[indexPath.row]
    if let cell = tableView.cellForRow(at: indexPath) {
        if cell.accessoryType == .checkmark {
            cell.accessoryType = .none
            // how to do UnCheckmark cell JSON data Remove from sessionData array?
        } else {
            cell.accessoryType = .checkmark
            // how to do Checkmark selected cell data Insert into sessionData array?
            self.sessionData.append(item)
            print(sessionData)
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...