Я реализовал SFSafariViewController в моем DetailVC, который включает textView, метки и кнопку.Кнопка при нажатии открывает URL.Проблема, которую я имею, является;при нажатии кнопки она на секунду открывается в SFSafariVC и возвращается к первоначальному виду webView.Нужно ли добавить код в viewController, который управляет переходом к DetailVC?Как это не относится к SFSafariVC или это тоже так?Не знаете, как поступить?Я задаю много вопросов, но все еще учусь правильно кодировать.
Я искал и не могу найти ответ.
// Вот код на viewController:
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let selectedState = selectedStates[indexPath.section]
let state = selectedState.states[indexPath.row]
youselectedState = state
performSegue(withIdentifier: "AgreementDetails", sender: nil)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "AgreementDetails"{
let StateDetailVC = segue.destination as! StateDetailViewController
StateDetailVC.state = youselectedState
}
}
}
// Вот код для detailVC, где я добавил SFSafariVC.
import SafariServices
import UIKit
class StateDetailViewController: UIViewController, SFSafariViewControllerDelegate {
@IBAction func watchButtonTapped(_ sender: SAButton) {
if let url = URL(string: self.state!.url) {
UIApplication.shared.open(url, options: [:], completionHandler: nil)
let safariVC = SFSafariViewController(url: url)
let config = SFSafariViewController.Configuration()
config.entersReaderIfAvailable = true
self.present(safariVC, animated: true, completion: nil)
safariVC.delegate = self
}
}
@IBOutlet weak var stateTitleTextLabel: UILabel!
@IBOutlet weak var stateDetailTextTitleLabel: UILabel!
@IBOutlet weak var stateDescriptionTextView: UITextView!
var state: State?
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
title = "Reciprocal Details"
stateTitleTextLabel.text = state?.title
stateDetailTextTitleLabel.text = state?.detailText
stateDescriptionTextView.text = state?.description
func safariViewControllerDidFinish(_ controller: SFSafariViewController) {
controller.dismiss(animated: true, completion: nil)
}
}
}