У меня есть приложение 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 всегда вызывается?