ios - 将 URL 值传递给 SecondView 控制器 WebView (WKWebView)
问题描述
我已经实现了 QR 扫描仪代码,扫描后我已经得到了 URL 字符串,我需要将它传递给 secondview 控制器到 WKWebView。但是每当我尝试传递 URL 字符串时,它就会变成null
或在单独的视图中打开。因为它在 secondview 控制器中没有正确打开。问题:需要将 url 值传递给第二个控制器 webview。First View Controller:包含二维码扫描码——获取URL。第二个视图控制器:包含用于显示 URL 数据的 WebView。
第一个控制器代码:
if let url = URL(string: decodedURL) {
let vc = SecondViewController(nibName: "SecondViewController", bundle: nil)
let url = URL(string: decodedURL)
vc.webView = WKWebView(frame: CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: self.view.frame.size.height))
vc.webView.autoresizingMask = UIView.AutoresizingMask(rawValue: UIView.AutoresizingMask.flexibleWidth.rawValue | UIView.AutoresizingMask.flexibleHeight.rawValue)
vc.webView.configuration.preferences.javaScriptEnabled = true
self.view.addSubview(vc.webView)
vc.webView.load(URLRequest(url: url!))
self.navigationController?.pushViewController(vc, animated: true)
}
第二个视图控制器:
@IBOutlet weak var webView: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
}
解决方案
在中添加以下变量SecondViewController
:
var url: URL?
在添加以下代码viewDidLoad
的方法中:SecondViewController
override func viewDidLoad() {
super.viewDidLoad()
if let url = self.url {
self.webView.load(URLRequest(url: url))
}
}
里面FirstController
,更新代码如下:
if let url = URL(string: decodedURL) {
let vc = self.storyboard?.instantiateViewController(withIdentifier: "SecondViewController") as! SecondViewController
vc.url = url
self.navigationController?.pushViewController(vc, animated: true)
}
我希望这能解决您的问题。
推荐阅读
- php - MySQL-添加休息后每天开两次店的营业时间
- android - Android 文本识别 - 限制文本识别器
- android - Google Places Android EditText 和 ListView
- scala - reduceByKeyAndWindow 在 Spark 流中如何工作?
- javascript - JavaScript - 使用 AppendChild() 向表中添加新行
- graphql - 在赛普拉斯的上下文中:如何等待 Apollo 客户端 Graphql 请求
- c# - 过滤导航属性 EF 核心
- vba - 运行时错误“1004”应用程序定义或对象定义错误:字符串变量作为数据验证公式
- rust - 在请求保护中访问 Rocket 0.4 数据库连接池
- javascript - 创建一个数组并在循环中为每个对象加 1