Ios ViewController始终加载相同的链接

Ios ViewController始终加载相同的链接,ios,swift,xcode,uiwebview,swift4,Ios,Swift,Xcode,Uiwebview,Swift4,我不熟悉swift和ios。视图控制器总是启动相同的链接,并且不显示第二个场景中带有按钮的网格菜单。我在这里做错了什么? 我有三个场景 在第一个场景中是导航。第二个场景是一个网格菜单,其中的按钮取决于按钮单击将在第三个场景中的webview中打开一个链接。第三个场景包括一个视图,该视图应根据步骤2中的单击按钮打开一个特定链接 import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelega

我不熟悉swift和ios。视图控制器总是启动相同的链接,并且不显示第二个场景中带有按钮的网格菜单。我在这里做错了什么? 我有三个场景

在第一个场景中是导航。第二个场景是一个网格菜单,其中的按钮取决于按钮单击将在第三个场景中的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
    }
}


您的问题是您更改了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)

查看此

请注意,
viewDidLoad
仅被调用一次。请您帮助我。我是ios新手。我想构建一个按钮网格,每个按钮都可以打开不同的链接。问题是,我使用谷歌链接直接打开webview,而不显示网格菜单。我在这里遇到了问题。请将这两行代码放在此处以加载web数据进入一个方法并在
viewDidLoad
中调用该方法,在两个
iAction
s中接受
viewDidLoad
一次性调用部分,尝试使用
reloadingoringcachedata
发出url请求,以避免对同一请求进行缓存。在应用程序启动过程中,它不会显示网格菜单,而是直接打开webview?我做了什么需要是在启动应用程序后,需要显示带有按钮的网格菜单,在按钮点击时,必须在webview中打开一个链接。按场景,你是指vc吗?另外,您是否将情节提要入口点或显示在导航左中的箭头设置为?您必须为按钮菜单创建一个vc,不要在Webview中实现它vc在情节提要中选择导航,然后我是否有main.Stroryboard,在它里面我有3个场景(vc)1个Webview 2网格菜单和3个导航