Данные iOS в Списке не сохраняют значение - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть UITableView, который показывает контакты из книги контактов пользователя.Для этого я использую Contacts Framework, и это работает просто отлично.

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

struct Contacts{
 var name = ""
 var number = ""
 var isSelected = false 
 }

Так что в UiTableViewCell я делаю isSelected true, если это уже false и наоборот.Но дело в том, что он получает ложное значение по умолчанию.

Что я делаю не так?

Источник (список) UITableView приведен ниже

public var listContacts : [Contacts] = []

, и я заполняю этот список из работы с кадрами контактов.Теперь на выбор пользователя я не знаю, почему это не становится правдой.?

Есть ли идея, что мне не хватает ??

update1:

here is a code for changing value on item click or tap 

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {



    var selectedModel = listContacts[indexPath.row]


    selectedModel.isSelected = !selectedModel.isSelected




     print("Name ",selectedModel.name," : ",selectedModel.isSelected)



}

1 Ответ

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

Структуры передаются по значению , когда вы изменили selectedModel, вы изменили не тот, что в списке контактов, а новый.Вот почему сам список не изменился.

Вы можете подумать о замене структуры на класс - классы передаются по reference

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