首页 文章

iOS Swift WebView问题

提问于
浏览
0

StoryBoard Image

我是iOS编程的新手,并尝试制作简单的基于 TableViewCell 的应用程序点击其中我用动态URL打开 webView .

在我的main.storyboard中,我添加了一个 UIViewController ,其中我添加了 WebviewNavigationBar .

  • webView始终以全屏模式打开 . 因此,如果我添加导航栏或后退按钮,它将不会显示在视图中 .

  • 如何从webView导航回包含项目列表的表格视图页面?

My code:

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 . 任何原因?

  • 我想使用webview的导航方法,如:

@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代码,我点击一行时执行segue:

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

1 回答

  • -1

    是的,因为您没有添加导航控制器,因为导航栏无法执行 .

    请按照以下类型 - >表视图 - >导航控制器 - > uiviewcontroller - > webview

    让我知道它是否有用?

相关问题