Можно ли редактировать анимацию при отключении SFSafariViewController с помощью Swift?

#swift #animation #swiftui #uinavigationcontroller #sfsafariviewcontroller

#swift #Анимация #swiftui #uinavigationcontroller #sfsafariviewcontroller

Вопрос:

В моем проекте есть пользовательская анимация, которую я бы предпочел сохранить, но при переходе назад из другого представления анимация появляется перед моими собственными анимациями, вызывающими неуклюжую задержку. У меня есть решение для моих пользовательских представлений, подобных этому.

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

Однако я не уверен, смогу ли я переопределить кнопку «Назад» из SFSafariViewController. Возможно ли это, или мне нужно перейти на пользовательские веб-просмотры и обработать там код?

Ответ №1:

Установка некоторого элемента управления, как обычно, может решить вашу проблему, пожалуйста, попробуйте.

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

Комментарии:

1. Проблема в том, что это SFSafariViewController(). У меня нет доступа к коду внутри этого контроллера представления, поэтому я не могу добавлять к нему функции. Или, если я могу, я не уверен, как я могу это сделать.

2. предполагается, что это WebView, и вы можете получить к нему правильный доступ?

3. Вроде того. Вы можете использовать его вместо webview. developer.apple.com/documentation/safariservices/… Но я не могу получить доступ к классу, как если бы я создал пользовательский webview.