Как передать данные из одного представления таблицы в другое представление при нажатии на ячейку представления таблицы?

Я новичок и сталкиваюсь с некоторыми проблемами при выполнении моего проекта. У меня есть табличное представление, в котором я получаю некоторое значение NSString с помощью синтаксического анализа XML. Это как: ячейка 1: основное имя - имя, адрес, номер телефона, дата. ячейка 2: указанное имя - имя, адрес, номер телефона, дата. ячейка 3: название ресторана - имя, адрес, номер телефона, дата.

здесь ячейки 1,2,3 - это ячейки моего табличного представления, а имя, адрес, номер телефона, дата - значения. Я получаю основное имя, рекомендуемое имя, название ресторана и все эти значения с помощью синтаксического анализа XML. Теперь моя работа заключается в том, что когда я нажимаю на основное имя, детали (имя, адрес, номер телефона, дата) с основным именем переходят на другую страницу. Там также будет описание каждой ячейки, которое будет показано при нажатии. Я могу щелкнуть ячейку и перейти на другую страницу, но не могу передать эти данные. Здесь следует отметить, что я использую Xcode 4.2 и не использую раскадровку.


person user1624441    schedule 11.09.2012    source источник
comment
Дубликат этого вопроса данные в контроллер просмотра деталей из таблицы в ios5"> stackoverflow.com/questions/10535606/   -  person 8vius    schedule 12.09.2012


Ответы (3)


Вам нужно думать с точки зрения моделей, представлений и контроллеров. Ваша модель — это базовые данные, которые представляют ваши таблицы. Таблицы — это представления, а контроллеры отвечают за извлечение данных из модели и передачу их в таблицу и представления.

Поэтому вместо того, чтобы думать о том, "как мне передать данные между таблицей и представлением?", подумайте о том, "как мне предоставить данные для моего контроллера представления, чтобы он мог передавать данные в его вид?»

Итак, в этой ситуации, как предлагает Алан, вам придется передавать предметы по кругу.

Предположим, что модель вашей первой таблицы представляет собой NSArray из NSDictionaries, что является довольно распространенным результатом синтаксического анализа XML. В каждом словаре есть пары ключ-значение для информации о ресторане. Контроллеру подробного представления требуется свойство для словаря. В методе tableView:didSelectRowAtIndexPath: вы должны создать экземпляр нового контроллера представления для подробного представления, а затем установить свойство данных контроллера представления для словаря в массиве по индексу, соответствующему строке только что выбранной ячейки.

person TimD    schedule 11.09.2012

Контроллеру подробного представления просто необходимо реализовать свойство или метод установки для соответствующего объекта модели, который вы хотите отобразить. Обычно вы устанавливаете это свойство в методе tableView:didSelectRowAtIndexPath: вашего главного делегата UITableView.

person FluffulousChimp    schedule 11.09.2012

Просто проверьте одну из концепций, используя переменную Delegate:

1) Передача параметра из представления обратно в ячейку UITableView другого представления

который можно использовать для передачи значений нескольким классам одновременно.

Кроме того, вы можете сделать то же самое, используя класс Singleton.

И в вашем случае вы можете использовать массив/словарь для передачи нескольких значений другому классу.

person Ajay Sharma    schedule 12.09.2012