Вы представляете модальное изображение на текущем контроллере представления, а не поверх предыдущего контроллера представления.Когда вы делаете
self.navigationController?.viewControllers.last?.present(myModalView, animated: false, completion: nil)
в протоколе viewWillDisappear
, это то же самое, что сказать
self.present(myModalView, animated: false, completion: nil)
Вместо этого попробуйте это:
let previousVCIndex = self.navigationController?.viewController.index(of: self)
self.navigationViewController?.viewControllers[previousVCIndex! - 1]?.present(myModalView, animated: false, completion: nil)