根据您提供的问答内容,我理解您需要将一个名为“UIWebView”的控件中的按钮(UIButton)连接到您的UITableViewController中的上一篇/下一篇文章。但是,您的描述中并没有提到“她的回复”,所以我无法提供与“她的回复”相关的信息。
如果您需要将“UIWebView”中的按钮连接到您的UITableViewController中的上一篇/下一篇文章,您可以使用一些JavaScript代码来实现这个功能。具体来说,您可以使用JavaScript的“window.location.href”属性来更改网页的URL,并将按钮的点击事件与JavaScript代码关联起来。当用户单击按钮时,JavaScript代码将使用“window.location.href”属性更改网页的URL,并将其定向到您的上一篇/下一篇文章。
在您的UITableViewController中,您可以使用“UITableViewDelegate”协议中的“tableView(_:didSelectRowAt:)”方法来捕获按钮的点击事件。当按钮被单击时,您可以在方法中执行JavaScript代码,以将用户重定向到您的上一篇/下一篇文章。
以下是一个示例代码,其中假设您的文章页面使用一个名为“ArticleViewController”的UITableViewController来显示文章列表。当用户单击文章列表中的任何一项时,代码会将用户重定向到该文章的具体页面。
// 在您的ArticleViewController.swift文件中
import UIKit
class ArticleViewController: UITableViewController, UITableViewDelegate {
// 您可以使用一个变量来存储要重定向的URL,但这里我们假设URL是“example.com/articles/12345”
var redirectURL = "example.com/articles/12345"
// 在您的tableView(_:didSelectRowAt:)方法中添加以下代码
override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
// 获取当前选中的文章的URL
let articleURL = articleList[indexPath.row]
// 检查URL是否与要重定向的文章URL匹配
if articleURL.absoluteString == redirectURL {
// 调用JavaScript代码将用户重定向到上一篇/下一篇文章
let script = "window.location.href='${ArticleViewController.baseURLString}/latest/'"
if let jsExecutor = WKUserScript(
source: script,
injectionTime: .atDocumentStart,
forMainFrameOnly: true
) {
let config = WKWebViewConfiguration()
config.userContentController.addUserScript(jsExecutor)
let webView = WKWebView(frame: .zero, configuration: config)
view.addSubview(webView)
webView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
webView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
webView.leadingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.leadingAnchor),
webView.trailingAnchor.constraint(equalTo: view.safeAreaLayoutGuide.trailingAnchor),
webView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
])
loadWebView(webView: webView, urlString: articleURL.absoluteString)
}
}
}
// 其他代码与之前的示例相同,包括使用loadWebView(_:urlString:)方法加载网页和创建WKWebViewConfiguration对象
// 在loadWebView(_:urlString:)方法中添加以下代码来加载JavaScript脚本
func loadWebView(webView: WKWebView, urlString: String) {
guard let url = URL(string: urlString) else { return }
let request = URLRequest(url: url)
webView.load(request)
}
}
在这个示例中,我们假设您的文章页面使用一个名为“ArticleListController”的UITableViewController来显示文章列表。当用户单击文章列表中的任何一项时,代码会将用户重定向到该文章的具体页面。
在“ArticleListController”中,您可以使用“UITableViewDelegate”协议中的“tableView(_:didSelectRowAt:)”方法来捕获列表中的点击事件。在方法中,您可以通过检查被单击的文章的URL是否与要重定向的URL匹配来决定是否执行重定向操作。如果匹配,则可以使用JavaScript代码将用户重定向到上一篇/下一篇文章。
请注意,这只是一个示例代码,并且还需要根据您的具体情况进行适当的修改。但是,它提供了一个明确的方法来将一个WebView中的按钮连接到另一个ViewController中的UITableView。
领取专属 10元无门槛券
手把手带您无忧上云