SFSafariViewController 中 'Done' 的默认行为是什么?

What is the default behaviour of 'Done' in SFSafariViewController?

我正在使用 SFSafariViewController 通过“设置”视图显示来自网站的应用程序相关信息(例如关于、支持、条款和条件)。

在“设置”视图中,有一个 table 带有静态单元格。在 Settings View Controller 中执行以下代码后,出现类似于 Safari 浏览器的视图,并且提供的 URL 已正确加载。

    let url = URL(string: "https://google.com.au")
    let svc = SFSafariViewController(url: url!)
    self.present(svc, animated: true, completion: nil)

但是,我没有指定导航栏中 'Done' 按钮的操作。但是当它被点击时它仍然关闭了 Safari 浏览器视图。

问题

基于这里的tutorial,我需要实现SFSafariViewControllerDelegate协议来关闭视图控制器。
我在 Apple's Documentation 中搜索了一些信息,但找不到有关 'Done' 按钮默认行为的任何信息。

  1. 'Done' 按钮的默认行为是什么?
  2. 即使 'Done' 按钮正在执行我想要的操作(即关闭视图),我是否仍应实施 SFSafariViewControllerDelegate 协议?

如果您看到 optional func safariViewControllerDidFinish(_ controller: SFSafariViewController) 委托方法的文档,说明会说:

You can perform any necessary cleanup here. The view controller is dismissed afterwards.

考虑到“完成”按钮无需在说明中添加委托和 The view controller is dismissed afterwards. 文本即可工作,我可以肯定地假设您不需要 如果您对默认的“完成”行为感到满意,则实施委托。

此外,委托方法本身是可选的,这表明您不需要实现该方法。