gpt4 book ai didi

ios - WebKit 后退按钮按下时没有响应

转载 作者:行者123 更新时间:2023-11-30 11:04:15 24 4
gpt4 key购买 nike

我设置了一个简单的后退按钮,可以让用户在访问网页后返回。测试一下,后退按钮似乎没有执行任何操作:

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

let stories = storyData[indexPath.row]
guard let storyImageUrl = URL(string: stories.url) else {return}
webView.load(URLRequest(url: storyImageUrl))
webView.allowsBackForwardNavigationGestures = true
view = webView

// Back button
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: UIBarButtonItem.Style.plain, target: self, action: #selector(self.goBack))
}

@objc func goBack() {
if webView.canGoBack {
webView.goBack()
} else {
self.navigationController?.popViewController(animated: true)
}
}

按下按钮根本不会执行任何操作 - 我已经检查了各种类似的问题,并且代码看起来是正确的。这里出了什么问题?

最佳答案

您可以通过多种方式推送新 Controller ,例如使用 segue 或从 Storyboard实例化 Controller 。

我将简要介绍后一个。在 Storyboard中创建一个带有 webView 的 ViewController,并为其指定一个 Storyboard ID 作为 WebViewController。创建一个名为 WebViewController 的 UIViewController 子类并将其与 Storyboard链接。然后使用下面的代码来推送它。

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
let stories = storyData[indexPath.row]
guard let storyImageUrl = URL(string: stories.url) else {return}
let webController = UIStoryboard(name: "Main", bundle: nil).instantiateViewController(withIdentifier: "WebViewController") as! WebViewController
webController.urlToLoad = storyImageUrl
self.navigationController?.pushViewController(webController, animated: true)
}

在上面的示例中,假设您当前的 View Controller 嵌入在 UINavigationViewController 中。然后在您的 WebViewController viewDidLoad 中您可以设置后退按钮

var urlToLoad: String?
override func viewDidLoad() {
// do your stuff
// Back button
self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: UIBarButtonItem.Style.plain, target: self, action: #selector(self.goBack))
guard let storyImageUrl = URL(string: urlToLoad) else {return}
webView.load(URLRequest(url: storyImageUrl))

}
@objc func goBack() {
if webView.canGoBack {
webView.goBack()
} else {
self.navigationController?.popViewController(animated: true)
}
}

您也可以使用segue。希望这有帮助。

关于ios - WebKit 后退按钮按下时没有响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52920489/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com