Использовать массивы из оператора tableView if в другом viewcontrollers - PullRequest
0 голосов
/ 09 апреля 2020

Мне нужно создать два «справочных» массива в соответствии с результатами поиска в табличном представлении. Моя основная проблема: Как я могу использовать эти массивы в другом контроллере представления?

et c .: Поскольку я хочу использовать один массив в другом контроллере с TableViewController (). HelpArrayOne он пуст / или не существует в tableViewController, но после печати в tableViewController я получаю значения, спасибо.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as UITableViewCell

 let listOfStudents = allUrl.reduce(into: [String:String]()){$0[$1.id] =  $1.stringValue}

        for key in listOfStudents{

            // Compare data

           if  cell.textLabel?.text == key.key {

           cell.imageView!.image = UIImage(named:"false_icon")

           var helpArrayOne:[String] = []

           helpArrayOne.append(all[indexPath.row].id)

           var helpArrayTwo:[String] = []

           helpArrayTwo.append(all[indexPath.row].stringValue)

           break

        } else {

            cell.imageView!.image = UIImage(named:"true_icon")

                }
        }
        print(helpArrayOne,helpArrayTwo)
        return cell
    }

1 Ответ

0 голосов
/ 09 апреля 2020

Запомните область; объявите массивы как переменные экземпляра, которые являются опциональными. После этого вы сможете передавать их в другой контроллер представления из любой другой области видимости текущего контроллера представления.

Просто убедитесь, что они передаются после того, как им присвоено значение.

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { [weak self] in

 let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath) as UITableViewCell

 let listOfStudents = allUrl.reduce(into: [String:String]()){$0[$1.id] =  $1.stringValue}

        for key in listOfStudents{

            // Compare data

           if  cell.textLabel?.text == key.key {

           cell.imageView!.image = UIImage(named:"false_icon")



           self?.helpArrayOne.append(all[indexPath.row].id)



           self?.helpArrayTwo.append(all[indexPath.row].stringValue)

           break

        } else {

            cell.imageView!.image = UIImage(named:"true_icon")

                }
        }
        print(helpArrayOne,helpArrayTwo)
        return cell
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...