Закрытие WKWebView и изменение ViewController с помощью Swift 4 - PullRequest
0 голосов
/ 22 февраля 2019

Я справляюсь со Swift 4 и Xcode.

Я не могу понять, как закрыть WKWebView после его открытия!

Я использую его для отображенияPDF-документ и добавил панель навигации с кнопкой «Готово».

Я понял, как его закрыть и перейти к Root UIViewController, однако я хочу, чтобы он пошел в View Controllerназывается 'DocumentsViewController'.

Ниже приведен код, с которым я работаю, однако я считаю, что строка, которую я пытаюсь исправить, выглядит следующим образом: let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: nil, action: #selector(selectAction(_:)))

С selectAction:

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
    //print("Select Clicked")
    self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}

Я часами пытался понять это!Как сделать так, чтобы при нажатии кнопки «Готово» он закрывал WKWebView и переходил к «DocumentsViewController»?

@objc func selectAction(_ sender:UIBarButtonItem) -> Void {
    //print("Select Clicked")
    self.view.window?.rootViewController?.dismiss(animated: true, completion: nil)
}

override func viewDidLoad() {
    super.viewDidLoad()

    if let url = Bundle.main.url(forResource: pdfTitle, withExtension: "pdf") {
    let webView = WKWebView(frame: self.view.frame)
    let urlRequest = URLRequest(url: url)
    webView.load(urlRequest as URLRequest)
    self.view.addSubview(webView)
    self.tabBarController?.tabBar.isHidden = true

    let screenSize: CGRect = UIScreen.main.bounds

    let navBar: UINavigationBar = UINavigationBar(frame: CGRect(x: 0, y: 0, width: screenSize.width, height: 44))
    self.view.addSubview(navBar);

    let navItem = UINavigationItem(title: "");
    let doneItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: nil, action: #selector(selectAction(_:)))

    navItem.rightBarButtonItem = doneItem;

    navBar.setItems([navItem], animated: false);

    // Get height of status bar (iPhone X introduced a new status bar)
    let statusBarHeight = UIApplication.shared.statusBarFrame.height
    // Initialize the frame
    webView.frame = CGRect.init(x: 0, y: statusBarHeight, width: view.bounds.maxX, height: view.bounds.maxY)
    // Set background color of status bar (optional)
    self.view.backgroundColor = UIColor(red: 248/255.0, green: 248/255.0, blue: 248/255.0, alpha: 1.0)
}
...