Проблемы с iOS Swift WebView - PullRequest
0 голосов
/ 29 мая 2018

StoryBoard Image

Я новичок в программировании на iOS и пытаюсь создать простое приложение на основе TableViewCell, щелкнув по которому, я открываю webView с динамическим URL.

В main.storyboard я добавил UIViewController, в который я добавил Webview и NavigationBar.

  1. Веб-просмотр всегда открывается в полноэкранном режиме.Поэтому, если я добавлю панель навигации или кнопку «Назад», она не будет отображаться в представлении.

  2. Как я могу вернуться на страницу просмотра таблицы, содержащую список элементов, извеб-просмотр?

Мой код:

import UIKit
import WebKit

class WebViewController: UIViewController, WKNavigationDelegate {

    var webView: WKWebView!
    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        title = webView.title
    }
    override func viewDidLoad() {
        super.viewDidLoad()
        let url = URL(string: webURL)!
        print(url)
        webView.load(URLRequest(url: url))
    }

    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self
        view = webView
    }
}

Прямо сейчас в приведенном выше коде я добавил webView в качестве простой переменной.Как только я сделаю @IBOutlet и ссылку на этот контроллер, код выдаст SIGBART error.Любая причина?

Я хочу использовать методы навигации веб-просмотра, такие как:

@IBAction func backAction(sender: AnyObject) {
    if webView.canGoBack {
        webView.goBack()
    }
}

@IBAction func forwardAction(sender: AnyObject) {
    if webView.canGoForward {
        webView.goForward()
    }
}

@IBAction func refreshAction(sender: AnyObject) {
    webView.reload()
}

@IBAction func stopAction(sender: AnyObject) {
    webView.stopLoading()
}

, но так как я не могу добавить WebView в качестве выхода, вышеуказанные методыне работайте для меня.

Код TableController, из которого я выполняю переход по щелчку строки:

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    performSegue(withIdentifier: "recipeWebView", sender: self)
}

1 Ответ

0 голосов
/ 29 мая 2018

Да, поскольку вы не добавили контроллер навигации, поскольку панель навигации не работала.

Выполните этот тип-> Просмотр таблицы-> Контроллер навигации -> uiviewcontroller -> Веб-просмотр

дайте мне знать, если это полезно?

...