Составьте протокол:
protocol DismissProtocol{
func dismissPresentedViewControllerComplete()
}
Мы заставим viewControllerA соответствовать этому протоколу.
Сделаем свойство в ViewControllerB типа DismissProtocol.
class ViewControllerB: UIViewController{
var delegate: DismissProtocol?
//............
}
Когда вы представляете ваш ViewControllerB, назначьте ViewControllerA в качестве делегата.
class SecondController: UIViewController{
var delegate: DismissProtocol?
Переопределите метод протокола в ViewControllerA:
extension ViewControllerA: DismissProtocol{
func dismissPresentedViewControllerComplete() {
// Do what you want to do when you return from ViewControllerB
}
}
Теперь, в завершении завершения ViewControllerB, выполните этот метод переопределения:
self.dismiss(animated: false) {
self.delegate?.dismissPresentedViewControllerComplete()
}