Вы сказали:
, когда я нажимаю кнопку "Назад" на странице C -> B, это показывает, что я запускаю действие, которое представляет модально (если это помогает)
Именно в этом проблема.Перейдя от A к B к C, C не должен снова модально представлять B.Вы создаете новый, второй экземпляр B. У вас будет иерархия контроллера представления, которая выглядит следующим образом:
A »B1» C »B2
Еслитем не менее, вы успешно отменили / размотали от C до B, в иерархии контроллера представления вы бы получили только A и B:
A »B
И затем, когда B ушел, чтобы уволить / развернуть A, C давно бы ушел, и вы никак не могли бы увидеть это в своей анимации.
Если вы используете сегменты раскручивания, я 'd предположил бы, что у контроллера представления A было действие размотки, например, так:
@IBAction func unwindToA(_ segue: UIStoryboardSegue) { }
А у контроллера представления B могло бы быть действие размотки, например:
@IBAction func unwindToB(_ segue: UIStoryboardSegue) { }
Теперь, когда C хочет отмотатьсявернуться к B, если вы могли бы использовать последнее действие раскручивать.Если вы хотите развернуть A (из B или C), вы можете использовать предыдущее.
Просто убедитесь, что вы никогда не представляете / не показываете, когда хотите вернуться назад в иерархии контроллера представления.Либо используйте раскручивающиеся сегы, либо dismiss
/ pop
в зависимости от ситуации.