如何从访问某些变量的另一个 swift 文件访问函数 - ios
How to access function from another swift file which access some variables - ios
我有两个 swift 文件 MenuViewController.swift 和 ViewController.swift
我在 ViewController.swift
的以下函数中得到了零异常
@IBOutlet weak var webSiteView: UIWebView!
func LoadWebview(webURL: String) {
let url = NSURL(string: webURL)
let request = NSURLRequest(url: url! as URL)
webSiteView.loadRequest(request as URLRequest)
}
我使用来自 MenuViewController.swift
的以下代码访问了该函数
ViewController().LoadWebview(webURL: "http://www.google.com")
我收到错误线程 1:致命错误:在展开可选值作为附加屏幕截图时意外发现 nil
错误截图 -> 1
你犯了一个常见的错误。
默认初始化程序 ViewController()
创建一个全新的视图控制器实例,它不是故事板中的实例。
因此插座未连接,代码崩溃。
即使新实例是情节提要中的实例,您也不能使用此语法,因为在加载关联视图并调用 viewDidLoad
之前,插座无论如何都不会连接。
在您的情况下,您必须在情节提要中获取对控制器的实际引用,可以使用出口、回调闭包、协议/委托或在 segue 中传递数据。
我有两个 swift 文件 MenuViewController.swift 和 ViewController.swift
我在 ViewController.swift
的以下函数中得到了零异常@IBOutlet weak var webSiteView: UIWebView!
func LoadWebview(webURL: String) {
let url = NSURL(string: webURL)
let request = NSURLRequest(url: url! as URL)
webSiteView.loadRequest(request as URLRequest)
}
我使用来自 MenuViewController.swift
的以下代码访问了该函数ViewController().LoadWebview(webURL: "http://www.google.com")
我收到错误线程 1:致命错误:在展开可选值作为附加屏幕截图时意外发现 nil
错误截图 -> 1
你犯了一个常见的错误。
默认初始化程序 ViewController()
创建一个全新的视图控制器实例,它不是故事板中的实例。
因此插座未连接,代码崩溃。
即使新实例是情节提要中的实例,您也不能使用此语法,因为在加载关联视图并调用 viewDidLoad
之前,插座无论如何都不会连接。
在您的情况下,您必须在情节提要中获取对控制器的实际引用,可以使用出口、回调闭包、协议/委托或在 segue 中传递数据。