Как правильно выполнить код ViewController после реализации DetailViewConroller для использования SFSafariViewController - PullRequest
0 голосов
/ 30 апреля 2019

Я реализовал 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)
    }
  }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...