iOS Swift WebView 问题
Posted
技术标签:
【中文标题】iOS Swift WebView 问题【英文标题】:iOS Swift WebView issues 【发布时间】:2018-05-29 05:08:03 【问题描述】:我是 ios 编程的新手,我正在尝试制作简单的基于 TableViewCell
的应用,点击后我会打开一个带有动态 URL 的 webView
。
在我的 main.storyboard 中,我添加了一个UIViewController
,我在其中添加了Webview
和NavigationBar
。
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 问题的主要内容,如果未能解决你的问题,请参考以下文章