2016-02-13 4 views
0

У меня есть приложение (мое первое), которое имеет несколько контроллеров представлений.Передача данных с помощью кнопки

VC1 - это таблицаView с именем & изображение. (a)

VC2 - это вид с именем, изображением и двумя кнопками. (просмотр добавления/редактирования списка) Данные, проходящие между этими двумя видами, прекрасно работают с использованием протоколов

VC3 - это tableView с другим списком. (элементы для первого списка) У меня есть кнопка на VC2, которая переходит в VC3.

Таким образом, пользователь вводит первый TableView и краны в tableViewCell, он перебирается ко второму представлению для редактирования выбранного списка. В то время как во втором представлении (а не в tableView) пользователь нажимает кнопку, которая переходит к третьему TableView для добавления/редактирования элементов. Затем пользователь нажимает кнопку «Готово», которая возвращает пользователя во второй вид.

Это моя проблема - как мне выбрать/связать имя списка с VC2 на VC3. Когда пользователь нажимает doneButton, элементы должны быть связаны с одним списком, который пользователь редактировал.

спасибо, новичок

+0

Использовать делегаты –

ответ

0

Here хороший учебник от яблока, показывая вам, как сделать это. Основная идея состоит в том, чтобы добавить вещи в представление таблицы. Имейте массив объектов в VC1, который содержит все, что вы хотите показать. Затем передайте этот массив на VC2 (который, в свою очередь, передает его на VC3), используя prepareForSegue. Here - хороший учебник по segue.

Для редактирования (перемещения и удаления ячеек), у этого была встроенная поддержка, поэтому вам не придется сворачивать самостоятельно. В нижней части этой ссылки учебника показано, как включить это.

Основная идея удаления состоит в том, что вы хотите удалить элемент из массива, а затем перерисовать представление таблицы (VC1) без этого элемента. В противном случае синхронизация таблицы и массива приведет к сбою.

+0

Да, это хороший учебник, и я использовал его для большей части моего приложения. Но учебник «segue» использует раскадровку. Я использую кнопку. В учебнике также используется кнопка принадлежности на VC1 для перехода на VC3. Разница заключается в том, что я пытаюсь перейти с VC2 на VC3 с помощью кнопки. – Kathe

+0

Вы можете добиться этого программно, инициализируя свою кнопку с помощью метода выбора, и в рамках этого метода выборов вызовите 'preformSegue:' в контроллер VC3. Это также, в свою очередь, вызовет «prepareForSegue:» – Cole

+0

извините, я довольно новичок в этом. Я думаю, вы говорите; @IBAction функ itemsButton() { \t \t пусть navigationController = раскадровки! .instantiateViewControllerWithIdentifier ("ItemsViewController"), как! UINavigationController let контроллер = navigationController.topViewController as! ItemsViewController \t \t controller.delegate = само \t \t presentViewController (navigationController, анимированные: правда, завершение: ноль) \t \t } , если это то, что вы говорите, это дает ошибку «не может присвоить значение тип VC1 на тип VC2 " – Kathe

Смежные вопросы