Swift 模态ViewController。有没有一种简单的方法可以找到 ViewController 的结果

Swift Modal ViewController. Is there a easy way to find the result of the ViewController

我有一个覆盖模态 ViewController2 的视图 (ViewController1)。 ViewController2 有三个选项

  1. 删除所有会话
  2. Select一个地方
  3. 取消

在 ViewController1

中启动模式 viewController 相当容易
  @objc func presentMenu() {
    let overlayController = ViewController2()
    overlayController.transitioningDelegate = self
    overlayController.modalPresentationStyle = .fullScreen
    present(overlayController, animated: true)
  }

这基本上显示了 ViewController2。但是 viewController1 代码已经过了这个,我在哪里可以找到这个 ViewController2 已被关闭?

您可以实施 viewWillAppear 并尝试弄清楚您出现的原因是显示的全屏视图控制器正在被关闭。但如果使用标准模式会更好,其中显示的全屏视图控制器 告诉 您它正在被关闭。为了使之成为可能,它有一个代表,你确定是你:

overlayController.modalPresentationStyle = .fullScreen
overlayController.delegate = self
present(overlayController, animated: true)

然后覆盖控制器在其即将被关闭时调用其委托中的已知方法:

self.delegate.dismissalIsHappening()

该方法通常通过协议的方式定义,这就是为什么将其称为协议和委托模式。我没有向您展示了整个模式!如果您搜索该术语,您会找到很多完整的示例。