Отменить сеанс не работает

В настоящее время я занимаюсь учебным курсом от Apple. Начните разработку приложений для iOS.

На странице Tutorial: Storiesboards (ссылка выше) мне сказали сделать пользовательские классы для двух видов. Для простоты я назову их Table View (имеет таблицу) и Add View (имеет текстовое поле для добавления элементов в таблицу).

В представлении "Таблица" есть кнопка, которая открывает ссылку "Добавить вид", а "Добавить вид" имеет две кнопки на панели навигации: "Отмена" и "Готово".

Мне сказали написать пустой метод unwindToList в.m файле Add View:

- (IBAction)unwindToList:(UIStoryboardSegue *)segue
{

}

Затем мне сказали связать обе кнопки "Отмена" и "Готово" к элементу "Выход" в "Сценовой доке" (см. unwindToList внизу) и выбрать метод unwindToList. В результате, это то, что должно произойти, как указано в учебнике:

Теперь запустите приложение. При запуске вы видите табличный вид, но в нем нет данных. Вы можете нажать кнопку "Добавить" и перейти к [Добавить вид] из [Вид таблицы]. Вы можете нажать кнопки "Отмена" и "Готово", чтобы вернуться к [Вид таблицы] ".

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

Заранее спасибо!

Tutorial Image

Ответы

Ответ 1

Если вы внимательно прочитаете учебник, вы увидите, что метод размотки должен находиться в UIViewController который вы UIViewController - из учебника -

Снятие развязки создается путем добавления метода действия к контроллеру представления назначения (контроллер просмотра, который вы хотите отключить).

...

Поскольку вы хотите вернуться в XYZToDoListTableViewController, вам необходимо добавить метод действия с этим форматом в интерфейс XYZToDoListTableViewController и реализацию.

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

Ответ 2

Мой опыт заключается в том, что метод разматывания в возвращаемом контроллере должен существовать до того, как вы примените segue.