ViewController 总是加载相同的链接
Posted
技术标签:
【中文标题】ViewController 总是加载相同的链接【英文标题】:ViewController is loading always the same link 【发布时间】: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
和IBAction
s这两个中调用方法
除了viewDidLoad
一次调用部分尝试使用reloadIgnoringCacheData
发出您的url 请求以避免缓存相同的请求。
【参考方案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
【讨论】:
在应用程序启动期间,它不显示网格菜单,而是直接打开 webview?我需要的是在启动应用程序后需要显示带有按钮的网格菜单,并且在单击按钮时它必须打开一个网页视图中的链接。 你的场景是 vc 吗?您是否还制作故事板入口点或出现在导航左中角的箭头? 你必须为按钮菜单创建一个vc,不要在webviewVC中实现它 在故事板中选择导航然后执行***.com/questions/27683590/… 我有 main.Stroryboard,里面有 3 个场景 (VC) 1 个 Webview 2 个网格菜单和 3 个导航以上是关于ViewController 总是加载相同的链接的主要内容,如果未能解决你的问题,请参考以下文章
Swift:PrepareForSegue 正在运行但未加载 ViewController