iOS Swift WebView 问题

Posted

技术标签:

【中文标题】iOS Swift WebView 问题【英文标题】:iOS Swift WebView issues 【发布时间】:2018-05-29 05:08:03 【问题描述】:

我是 ios 编程的新手,我正在尝试制作简单的基于 TableViewCell 的应用,点击后我会打开一个带有动态 URL 的 webView

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

    webView 总是全屏打开。因此,如果我添加导航栏或后退按钮,它不会显示在视图中。

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

我的代码:

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 添加为插座,因此上述方法对我不起作用。

我在点击一行时执行 segue 的 TableController 代码:

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

【问题讨论】:

您需要将您的表格视图嵌入 UINavigationController 并在单元格上单击推送带有 WebView 的 ViewController。 添加控制器的代码,从那里你正在推动 webViewController 你是如何从第一个视图控制器导航到第二个视图控制器的? 使用表控制器代码更新信息 展示或呈现哪种类型的转场? 【参考方案1】:

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

按照这个类型->表格视图->导航控制器->uiviewcontroller->webview

如果有帮助请告诉我?

【讨论】:

我想,但我在这里没有足够的声誉.. :D

以上是关于iOS Swift WebView 问题的主要内容,如果未能解决你的问题,请参考以下文章

iOS Swift WebView 问题

在 swift 3 中启动应用程序时,如何在另一个 ViewController 中预加载 UIWebView?

iOS解决APP进入后台WebView上音频继续播放问题

Xamarin。 WebView Progres

如何使用swift为IOS推送通知打开新的WebView

iOS Swift Webview 在加载时显示图像