ios - Web 视图崩溃
问题描述
您好,感谢您阅读本文,
我正在构建一个带有 2-3 个选项卡(视图控制器)的简单应用程序,第一个是某种转换器(英里到公里),很好,第二个视图控制器必须有一个“网络视图”元素。因此,当我构建一个只有一个视图控制器的单独应用程序时,(使用“import WebKit”)它可以正常工作:
super.viewDidLoad()
webview.load(URLRequest(url: URL(string: "https://www.google.com")!))
但是,当我将其复制到 @super.viewDidLoad()@ 行下的 2 选项卡式应用程序代码时,它会崩溃说“线程 1:致命错误:在隐式展开可选值时意外发现 nil”。
我对这一切都很陌生,所以我不知道如何解决这个问题。而且我在这个论坛上没有找到类似问题的解决方案。先感谢您!
ps 我如何创建 web 视图 - 直观地添加它。我看到了通过编码创建它的提示,我会尝试,谢谢
pps 我在这里添加我的代码:
import UIKit
import SafariServices
import WebKit
extension String {
func toDouble() -> Double? {
return NumberFormatter().number(from: self)?.doubleValue
} }
class ViewController: UIViewController {
@IBOutlet var mileField: UITextField!
@IBOutlet var mileResult: UILabel!
@IBOutlet var meters: UILabel!
@IBOutlet var cmeters: UILabel!
@IBAction func mileButton(_ sender: UIButton) {
let mile: Double = mileField.text?.toDouble() ?? 0
let km = mile * 1.6
let m = km * 1000
let cm = m * 100
meters.text = String(m)+" m"
mileResult.text = String(km)+" km"
cmeters.text = String(cm)+" cm"
}
@IBOutlet var vw: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
vw.load(URLRequest(url: URL(string: "google.com")!)) // this is where I got Fatal error blah blah blah
}
@IBAction func bTapped() {
let vc = SFSafariViewController(url: URL(string: "https://www.apple.com")!)
present(vc, animated: true) // this works fine but I need to use webview element
}
}
解决方案
声明你的两个视图控制器。另外请在情节提要中将此类名称分配给您的视图控制器。
https://i.stack.imgur.com/BDoY6.png
class ViewController1: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
class ViewController2: UIViewController {
@IBOutlet var webview: WKWebView!
override func viewDidLoad() {
super.viewDidLoad()
webview.load(URLRequest(url: URL(string: "https://www.google.com")!))
}
}
推荐阅读
- python - 当 slot 函数具有默认参数=None 时,PySide2 的行为与 PySide 不同
- github - 我如何在 github 上回滚,即使只是在本地?
- c# - 为什么我生成的网格有偏移?
- javascript - 如何在 React Native expo 中将捕获的图像保存到文件管理器
- dafny - 将数字转换为字符串
- electron - 如何在没有遥控器的情况下创建关闭、最大化和最小化按钮?
- ansible - Ansible:查找匹配模式在正则表达式中显示错误
- java - Junit&intelliJ:在没有特定@Tag的文件夹&&中运行所有测试
- delphi - Delphi如何检查IInterface的实例是否是IInvokable
- java - 为什么 RestController 在 Spring Boot 中不起作用?