Unwind segue перемещает меня к неправильному контроллеру представления

В моем тестовом приложении у меня есть два контроллера представления (VC1 и VC2), встроенные в контроллер панели вкладок. У каждого контроллера представления есть кнопка «Перейти», которая перемещает нас к третьему контроллеру представления (VC3):

моя раскадровка

В VC1 я добавил функцию

@IBAction func unwindFromVC3(segue: UIStoryboardSegue) {
    print("Unwind from VC3")
}

и подключил элемент панели «Сохранить» VC3 со значком «Выход» для VC3.

Поэтому, когда я запускаю свое приложение и нажимаю кнопку «Перейти» в VC1, я перехожу к VC3, а когда я нажимаю «Сохранить», я возвращаюсь к VC1. Все в порядке.

Если я перейду на панель VC2 и нажму оттуда «Перейти», я снова перейду к VC3. Но если я нажму «Сохранить» оттуда, я снова вернусь к VC1 (не VC3).

Я ожидал, что там ничего не произойдет (потому что у меня нет никаких функций "раскрутки" в VC2). Так почему меня перевели на VC1? Можно ли создать два действия раскрутки для моего элемента «Сохранить»?


person light    schedule 13.04.2016    source источник
comment
Что вы хотите, чтобы произошло, когда пользователь переходит из VC2->VC3, а затем нажимает «Сохранить»?   -  person vacawama    schedule 13.04.2016
comment
В реальном приложении пользователь сможет редактировать некоторые детали объекта в VC3. Поэтому, когда пользователь нажимает «Сохранить», данные должны быть сохранены, и пользователь будет возвращен обратно в VC2.   -  person light    schedule 13.04.2016
comment
Смотрите мой ответ ниже.   -  person vacawama    schedule 13.04.2016


Ответы (1)


Если вы хотите вернуться к VC2 из VC3, просто добавьте unwindFromVC3 к VC2:

@IBAction func unwindFromVC3(segue: UIStoryboardSegue) {
    print("Unwind from VC3")
}

Затем переход раскрутки будет раскручен к правильному ViewController (тот, который перешел к VC3).

Вам нужно только один раз настроить переход отката, и пока все контроллеры ViewController, которые переходят на VC3, реализуют unwindFromVC3, сохранение будет возвращаться к исходному ViewController.

person vacawama    schedule 13.04.2016
comment
О, я вижу. Спасибо! - person light; 13.04.2016