Чтобы сделать то, что вы просите, вы можете иметь представление наложения в качестве необязательного свойства уровня класса, и попытаться удалить его, когда появится представление
class VC1: UIViewController {
var overlayView: UIView?
override func viewDidAppear() {
super.viewDidAppear()
overlayView?.removeFromSuperView()
}
Или вы можете использовать шаблон протокола / делегата длясообщите VC1, что VC2 был удален, и используйте этот метод для удаления overlayView. Это более чистое решение.
Однако, если вы делаете то, что я думаю, вы пытаетесь сделать (см. Мой комментарий), я думаю, что есть лучший подход - обрабатывать все это во втором контроллере представления. Сделайте так, чтобы основной вид контроллера второго представления выполнял маскирование, установив его альфа, затем добавьте представление контейнера в центр этого представления и добавьте весь свой контент / функциональные возможности в это представление контейнера. Таким образом, когда вы отклоните второй, слой размытия будет сопровождаться им.