【发布时间】:2019-06-12 06:44:05
【问题描述】:
我已经实现了 QR 扫描仪代码,在扫描时我已经获得了 URL 字符串,我需要将它传递给 secondview 控制器到 WKWebView。但是每当我尝试传递 URL 字符串时,它就会变成 null 或在单独的视图中打开。因为它在 secondview 控制器中没有正确打开。
问题:需要将 url 值传递给第二个控制器 webview。
第一个视图控制器:
包含二维码扫码——获取网址。
第二个视图控制器:
包含用于显示 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()
}
【问题讨论】:
-
您是否获得了 null 或 url 未在 webview 中加载?你能确认一下吗?
-
在您的示例中,您并不是真正“传递 URL”,而是将其分配给目标 viewController webView。它是否显示错误?顺便说一句,第二个
let url = URL(string: decodedURL)应该被删除,self.view.addSubview(vc.webView)在你的例子中似乎很可疑 -
@Khushbu 未在 secondviewcontroller 中适当加载。 WebView 是第二个控制器的一部分,如果我只将 url 值从第一个控制器传递到第二个控制器,我认为 WebView 会正常工作。
-
@Olympiloutre 是的,你是对的。我需要修改一下,我只会将 URL 传递给 secondcontroller,以便我可以将此值传递给 WebView 以显示数据。但如果我删除 self.view.addSubview(vc.webView) 它将无法工作。
标签: ios swift uiviewcontroller segue wkwebview