Web视图中的程序化后退按钮(WebKit)

时间:2017-06-28 15:15:23

标签: ios swift uiwebview webkit

我已经在我的webView上添加了一个后退按钮,但我无法将其设置为实际返回 -

我有这个功能:

func goBack() {
    if webView.canGoBack {
        webView.goBack()
    }
}

didSelectRowAt IndexPath我有:

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

    webView.load(URLRequest(url: self.urls[indexPath.row]))
    webView.allowsBackForwardNavigationGestures = true
    view = webView

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

但是点击后退按钮什么都不做 - 我不确定我缺少哪些步骤来完成这项工作。感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

您已将目标设为webView,其应为self

试试这个,看看:

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

注意:您已将操作分配给表格行中的导航项目   选择(didSelectRowAt),所以你需要先选择任何一行   那会有用。如果您直接点击/点击,此按钮将无法使用   在按钮上没有选择任何行。要检查其功能,请将代码移至viewDidLoad

我尝试过以下代码并且正在使用

 override func viewDidLoad() {
     super.viewDidLoad()
     self.navigationItem.leftBarButtonItem = UIBarButtonItem(title: "Back", style: UIBarButtonItemStyle.plain, target: self, action: #selector(self.goBack))
 }

 func goBack() {
     print("goBack...")
 }