代码之家  ›  专栏  ›  技术社区  ›  Mohamed Mosaed

如何从另一个访问某些变量的swift文件访问函数-ios

  •  1
  • Mohamed Mosaed  · 技术社区  · 7 年前

    我有两个swift文件MenuViewController。swift和ViewController。敏捷的

    我在ViewController的以下函数中得到了零异常。敏捷的

    @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中的以下代码访问了该函数。敏捷的

    ViewController().LoadWebview(webURL: "http://www.google.com")
    

    我得到错误线程1:致命错误:在将可选值作为附加屏幕截图展开时意外发现nil

    错误屏幕截图-> 1

    1 回复  |  直到 7 年前
        1
  •  4
  •   vadian    7 年前

    你犯了一个常见的错误。

    默认初始值设定项 ViewController() 创建视图控制器的全新实例 情节提要中的实例。

    因此,插座未连接,代码崩溃。

    即使新实例是情节提要中的实例,也不能使用此语法,因为在加载关联视图之前,插座不会连接,并且 viewDidLoad 被调用。

    在您的情况下,您必须在情节提要中获得对控制器的实际引用,可以使用出口、回调关闭、协议/委托,也可以在序列中传递数据。