ответ. Пишу приложение по типу заметок. На первом ViewController'е таблица (table view) с заголовками созданных заметок, на втором - детальное отображение конкретной заметки (заголовок + текст). Логика такая: пользователь нажимает на ячейку созданной ранее заметки, я дергаю индекс этой ячейки, который равен индексу контейнера (массив), в котором на данный момент хранятся заметки. По этому индексу получаю и заголовок и текст заметки. После этого я хочу передать эти данные на второй ViewController и отобразить их в соответствующих полях. Для получения данных использую метод tableView, в котором сохраняю данные нужного индекса в глобальные переменные. Для передачи данных между контроллерами использую переопределенный метод prepare, в котором заполняю глобальные переменные второго контроллера данными из первого контроллера. Проблема в том, что при нажатии на tableView первым вызывается не метод подготовки данных, а метод отправки (prepare), соответственно данные в переменных первого контроллера пустые на момент отправки. Попробовал отправить конкретные строки - все передеается и отображается нормально, что наталкивает на мысль, что я что-то концептуально делаю не так. Не могли бы вы подсобить советом?
У списка есть метод didSelectRowAt. В нем доступен indexPath нажатого элемента. Прям в нем можешь выдернуть нужный элемент из массива let element = elements[indexPath.row]
Обсуждают сегодня