我正在使用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中搜索了一些信息,但找不到有关“完成”按钮的默认行为的任何信息。
答案 0 :(得分:1)
如果您看到optional func safariViewControllerDidFinish(_ controller: SFSafariViewController)
委托方法的文档,则说明如下:
您可以在此处执行任何必要的清理工作。视图控制器是 之后被解雇。
鉴于完成按钮的工作原理没有添加代理以及说明中的The view controller is dismissed afterwards.
文字,我认为可以安全地假设您不需要 如果您对默认的完成行为感到满意,则实施该委托。
更多,因此委托方法本身是可选的,这是另一个表明你不需要来实现该方法。