ViewController始终加载相同的链接

时间:2019-01-16 22:15:51

标签: ios swift xcode uiwebview swift4

我是swift和ios的新手。ViewController始终启动相同的链接,并且不显示第二个场景中带有按钮的网格菜单。我在这里做错了什么? 我在main.storyboard中有三个场景。

第一个场景是导航。第二个场景是带有按钮的网格菜单,根据单击的按钮将在第三个场景中的webview中打开一个链接。第三个场景包括一个视图,该视图应打开一个特定的链接在步骤2的点击按钮上

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    var webView :  WKWebView!
    var webi:String =  "https://www.google.al"

    override func viewDidLoad() {
        print("‼️OMG:viewDidLoad", webi)
        super.viewDidLoad()

        let url = URL(string: webi)!
        webView.load(URLRequest(url: url))

        let refresh = UIBarButtonItem(barButtonSystemItem: .refresh, target: webView, action: #selector(webView.reload))
        toolbarItems = [refresh]
        navigationController?.isToolbarHidden = false
    }

    override func loadView() {
        webView = WKWebView()
        webView.navigationDelegate = self
        view = webView
    }

    @IBAction func Menu1(_ sender: Any) {
        print("‼️OMG:viewDidLoad with menu1")
        webi =  "https://www.menu1.com"

    }

    @IBAction func Menu2(_ sender: Any) {
        print("‼️OMG:viewDidLoad with menu1")
        webi =  "https://www.menu2.com"
    }

    func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        title = webView.title
    }
}

enter image description here

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您的问题是您更改了urlStr webi而没有再次重新加载webview

func refresh() { 
  let url = URL(string: webi)!
  webView.load(URLRequest(url: url))
}
@IBAction func Menu1(_ sender: Any) {
    print("‼️OMG:viewDidLoad with menu1")
    webi =  "https://www.menu1.com"
    self.refresh()
}

@IBAction func menu2(_ sender: Any) {
    print("‼️OMG:viewDidLoad with menu1") // other link
    webi =  "https://www.menu1.com"
    self.refresh()
}

///

  

导航->按钮菜单VC-> webViewVC

在按钮菜单中

 let vc = ViewController()
 vc.webi = "" // set link according to the clicked button
 self.navigationController?.pushViewController(vc,animated:true)

查看此Demo