Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
斯威夫特:当我在单独的UITableViewController中引用变量时,为什么iAction会使应用程序崩溃?_Uitableview_Swift_Iboutlet - Fatal编程技术网

斯威夫特:当我在单独的UITableViewController中引用变量时,为什么iAction会使应用程序崩溃?

斯威夫特:当我在单独的UITableViewController中引用变量时,为什么iAction会使应用程序崩溃?,uitableview,swift,iboutlet,Uitableview,Swift,Iboutlet,我有一个名为PinCell.swift的自定义UITableViewCell类,其中包含对UITableViewController的引用和将数据从单元格传递到UITableViewController的iAction。我没有错误,一切都很好 PinCell.swift(UITableViewCell): var viewControllerB:UITableViewController! @IBAction func titleButtonPressed(sender: An

我有一个名为PinCell.swift的自定义UITableViewCell类,其中包含对UITableViewController的引用和将数据从单元格传递到UITableViewController的iAction。我没有错误,一切都很好

PinCell.swift(UITableViewCell):

    var viewControllerB:UITableViewController!

    @IBAction func titleButtonPressed(sender: AnyObject) {
    var venueIDFromRequest = self.pin?["venue"]["id"].stringValue
    println("venueIDFromRequest is: \(venueIDFromRequest)")
    if venueIDFromRequest != nil {
        let venueDetailRef = viewControllerB as! VenueDetailViewController
        venueDetailRef.venueIDPassed = venueIDFromRequest!
    }
    if(self.delegate != nil){ //Just to be safe.
        self.delegate.callSegueFromCell(venueIDFromRequest: venueIDFromRequest!)
    }
}
VenueDetailViewController.swift(UITableViewController)

当我点击我的应用程序中的按钮时,它崩溃了,并将以下内容打印到控制台
致命错误:在打开一个可选值时意外发现nil,我们以前都看到过这个值,我意识到这个错误的含义。我的问题是,当它似乎在另一个视图控制器中引用变量时,为什么会发生这种情况?即使当我
println(venueIDFromRequest)
时,我也能得到正确的数据。我在这里做错了什么?如何将
venueIDFromRequest
分配给
self.viewControllerB.venueIDPassed

下面是一个屏幕截图,如果它可以帮助诊断实际发生的情况:


是的,插座已断开连接。如何将其连接到reference VenueDetailViewController?与您最初连接它的方式相同。我打算写一个答案。。。但我不确定您是如何将视图控制器与插座连接起来的。@nhgrif Ok我完全删除了IBOutlet,并将其替换为属性
var viewControllerB:UITableViewController。然后在
标题按钮内按下
I do
让venueDetailRef=viewControllerB为!VenueDetailViewController venueDetailRef.venueIDPassed=venueIDFromRequest仍然会得到与我以前相同的错误。
var venueIDPassed:String! = "asdklasdkas"