Swift 模态ViewController。有没有一种简单的方法可以找到 ViewController 的结果
Swift Modal ViewController. Is there a easy way to find the result of the ViewController
我有一个覆盖模态 ViewController2 的视图 (ViewController1)。
ViewController2 有三个选项
- 删除所有会话
- Select一个地方
- 取消
在 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()
该方法通常通过协议的方式定义,这就是为什么将其称为协议和委托模式。我没有向您展示了整个模式!如果您搜索该术语,您会找到很多完整的示例。
我有一个覆盖模态 ViewController2 的视图 (ViewController1)。 ViewController2 有三个选项
- 删除所有会话
- Select一个地方
- 取消
在 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()
该方法通常通过协议的方式定义,这就是为什么将其称为协议和委托模式。我没有向您展示了整个模式!如果您搜索该术语,您会找到很多完整的示例。