UIViewController上的apple documentation dismiss(animated:completion :)说
呈现视图控制器负责消除视图
它提出的控制器。如果在显示的视图上调用此方法
控制器本身,UIKit要求呈现视图控制器进行处理
解雇。
但是当我覆盖演示控制器的解雇时
override func dismiss(animated flag: Bool, completion: (() -> Void)? = nil)
它不被称为
ViewController1->现在的ViewController2
从ViewController2调用ViewController2.dismiss-> dismiss,不调用ViewController1。(override)dismiss
最佳答案
根据present(_:animated:completion:)的文档:
您在其上调用此方法的对象可能并不总是一个
处理演示文稿。每种演示样式都有不同
规范其行为的规则。例如,全屏演示
必须由本身涵盖整个
屏幕。如果当前的视图控制器无法满足请求,
它将请求沿视图控制器层次结构转发到其
最近的父级,然后可以处理或转发该请求。
如果是iPhone(水平紧凑的环境),则默认情况下使用全屏模式。因此,此处ViewController1
可能不是'presentingViewController'。
关于ios - UIViewController.dismiss()不调用presentingViewController.dismiss(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48386582/