使用Swift关闭SFSafariViewController时是否可以编辑动画?

使用Swift关闭SFSafariViewController时是否可以编辑动画?,swift,animation,swiftui,uinavigationcontroller,sfsafariviewcontroller,Swift,Animation,Swiftui,Uinavigationcontroller,Sfsafariviewcontroller,我的项目中有一些自定义动画,我宁愿保留它们,但是当从另一个视图返回时,动画会在我自己的动画之前出现,导致笨拙的延迟。对于这样的自定义视图,我有一个解决方案 self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(backTapped)) @objc func backTapped() {

我的项目中有一些自定义动画,我宁愿保留它们,但是当从另一个视图返回时,动画会在我自己的动画之前出现,导致笨拙的延迟。对于这样的自定义视图,我有一个解决方案

self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: self, action: #selector(backTapped))
@objc func backTapped() {
        navigationController?.popViewController(animated: false)
}

但是,我不确定是否可以覆盖SFSafariViewController中的后退按钮。这是可能的,还是我需要转到自定义Web视图并在那里处理代码?

像往常一样放置一些控件可以解决您的问题,请尝试

@objc func backTapped() {
        if(webview.canGoBack) {
             webview.goBack()
        } else {
             self.navigationController.popViewController(animated:false)
        }
}

问题是它是一个SFSafariViewController()。我没有对视图控制器内部的代码访问权限,因此无法向其添加函数。或者如果我可以,我不知道我怎么能做到。它应该是一个网络视图,你可以访问它的权利?有点。您可以使用它代替webview。但是我不能像创建自定义webview那样访问该类。