Почему один и тот же разматыватель имеет разное поведение? - PullRequest
0 голосов
/ 24 марта 2019

У меня есть приложение Swift, содержащее раскадровку с тремя различными контроллерами представления.Пользователь может переходить через эти контроллеры представления двумя различными способами:

VC1 -> VC2 -> VC3

ИЛИ

VC1 -> VC3

СVC3, пользователи могут нажать кнопку «назад», которая программно раскручивается к VC1 со следующим кодом:

self.performSegue(withIdentifier: "UnwindToVC1", sender: self)

Эта последовательность раскрутки связана с секцией раскрутки, созданной в раскадровке, которая раскручивает следующую функциюв VC1:

@IBAction func unwindToVC1(segue: UIStoryboardSegue) {
    print("Unwind")
}

Если пользователь переходит непосредственно из VC1 в VC3, приложение корректно раскручивается, возвращая пользователя в VC1 и печатая «Unwind».

Однако, если пользователь переходитот VC1 до VC2 до VC3, раскрутка по-прежнему возвращает пользователя к VC1, но функция unwindToVC1 никогда не вызывается и «раскрутка» никогда не печатается.

Почему тот же самый раскрученный ход ведет себя непоследовательно?Есть ли способ гарантировать, что функция размотки в VC1 всегда вызывается?

...