【发布时间】:2019-01-16 22:15:50
【问题描述】:
我是 swift 和 ios 的新手。视图控制器始终启动相同的链接,并且不显示带有第二个场景中的按钮的网格菜单。我在这里做错了什么? 我在 main.storyboard 三个场景中。
在第一个场景中是导航。第二个场景是一个带有按钮的网格菜单,根据按钮单击将在位于第三个场景的 web 视图中打开一个链接。第三个场景包括一个视图,该视图应根据具体情况打开特定链接在第 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
}
}
【问题讨论】:
-
注意
viewDidLoad只被调用一次。 -
请你帮帮我。我是 ios 新手。我想构建一个按钮网格,每个按钮打开不同的链接。我让它直接用谷歌链接打开 webview 的问题是不显示网格菜单。我卡在这里了。
-
把加载web数据的两行放到一个方法中,在
viewDidLoad和IBActions这两个中调用方法 -
除了
viewDidLoad一次调用部分尝试使用reloadIgnoringCacheData发出您的url 请求以避免缓存相同的请求。
标签: ios swift xcode uiwebview swift4