SFSafariViewController中“完成”的默认行为是什么?

时间:2017-10-22 00:16:43

标签: ios swift sfsafariviewcontroller

我正在使用SFSafariViewController通过“设置”视图从网站显示与应用相关的信息(例如,关于,支持,T& C)。

在“设置”视图中,有一个包含静态单元格的表。在设置视图控制器中实现以下代码后,将出现类似于Safari浏览器的视图,并且正确加载了提供的URL。

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

但是,我没有为导航栏中的“完成”按钮指定操作。但是当它被点击时它仍然取消了Safari浏览器视图。

问题

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

  1. “完成”按钮的默认行为是什么?
  2. 即使“完成”按钮正在执行我想要的操作(即关闭视图),我还应该实现SFSafariViewControllerDelegate协议吗?

1 个答案:

答案 0 :(得分:1)

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

  

您可以在此处执行任何必要的清理工作。视图控制器是   之后被解雇。

鉴于完成按钮的工作原理没有添加代理以及说明中的The view controller is dismissed afterwards.文字,我认为可以安全地假设您不需要 如果您对默认的完成行为感到满意,则实施该委托。

更多,因此委托方法本身是可选的,这是另一个表明你不需要来实现该方法。