func dismiss(animated flag: Bool,
completion: (() -> Void)? = nil)navigationController?.popViewController(animated: true/false)viewWillDisappear() и viewDidDisappear() это методы жизненного цикла вью контроллера, эти методы вызываются самим фреймворком UIKit, вручную, обычно, они не вызываются. Вызываются фрейморкомом они тогда, когда вью контроллера собирается исчезнуть и когда оно исчезло соответственно, только после этого контроллер будет удален из памяти.